第三讲java基础(2)
- 格式:ppt
- 大小:1.83 MB
- 文档页数:53
Java编程语言基础知识Java是一种面向对象的编程语言,由Sun Microsystems公司于1995年推出。
它是一种通用的、高级的、并发性强的编程语言,被广泛应用于各种领域,包括企业级应用开发、移动应用开发、嵌入式系统等。
本文将介绍Java编程语言的基础知识,包括语法、数据类型、运算符、控制流程、面向对象等方面。
一、语法1. 注释Java中的注释有三种形式:单行注释(//)、多行注释(/* ... */)和文档注释(/** ... */)。
注释是用来解释代码的作用,提高代码的可读性。
2. 类和方法Java程序由一个或多个类组成,每个类包含一个或多个方法。
方法是执行特定任务的代码块。
一个Java程序必须包含一个包含main方法的类,作为程序的入口点。
3. 变量和常量在Java中,变量用于存储数据,常量是不可改变的值。
变量必须先声明后使用,可以在声明时初始化,也可以在后续代码中赋值。
常量使用关键字final声明,一旦赋值后就不能再修改。
二、数据类型Java中的数据类型可以分为两大类:基本数据类型和引用数据类型。
1. 基本数据类型Java提供了8种基本数据类型:byte、short、int、long、float、double、char和boolean。
这些类型分别用于存储不同类型的数据,如整数、小数、字符和布尔值。
2. 引用数据类型引用数据类型包括类、接口、数组等。
它们是由基本数据类型组成的更复杂的数据结构。
三、运算符Java提供了一系列运算符,用于对数据进行操作。
1. 算术运算符算术运算符用于执行基本的算术操作,如加、减、乘、除等。
2. 关系运算符关系运算符用于比较两个值之间的关系,如相等、大于、小于等。
3. 逻辑运算符逻辑运算符用于对布尔值进行逻辑运算,如与、或、非等。
四、控制流程控制流程用于控制程序的执行顺序,包括条件语句、循环语句和跳转语句。
1. 条件语句条件语句根据条件的真假来执行不同的代码块。
第一讲 Java语言入门1.1 Java的特点1.1.1面向对象:•与C++相比,JAVA是纯的面向对象的语言C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使C++成为一个"混血儿"。
而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。
1.1.2可移植(平台无关性):•生成中间字节码指令与其他编程语言不同,Java并不生成可执行文件(.exe文件),而是生成一种中间字节码文件(.class文件)。
任何操作系统,只要装有Java虚拟机(JVM),就可以解释并执行这个中间字节码文件。
这正是Java实现可移植的机制。
•原始数据类型存储方法固定,避开移植时的问题Java的原始数据类型的大小是固定的。
比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像Sun SPARC这样的32位处理器中,整数用4个字节表示。
在Intel Pentium处理器上,整数类型由具体的操作系统决定:对于DOS和Win32来说,整数是2个字节;对于Windows 9x 、NT和2000,整数是4个字节。
当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。
Java的字符串,则采用标准的Unicode格式保存。
可以说,没有这个特性,Java的可移植性也不可能实现。
1.1.3简单•JAVA在语法上与C++类似JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法;•取消了C++的一些复杂而低效的特性比如:用接口技术代替了C++的多重继承。
C++中,一个类允许有多个超类,这个特性叫做"多重继承",多重继承使得编译器非常复杂且效率不高;JAVA 的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能其它被取消的特性包括:虚拟基础类、运算符过载等•JAVA的基本解释器和类支持模块大概仅40K即使加入基本的标准库和支持线程的模块,也才220K左右。
1.JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配Java栈与堆堆:顺序随意栈:后进先出(Last-in/First-Out).Java的堆是一个运行时数据区,类的对象从中分配空间。
这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。
堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。
但缺点是,由于要在运行时动态分配内存,存取速度较慢.栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。
但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
栈中主要存放一些基本类型的变量(int, short, long, byte, float, double, boolean, char)和对象句柄。
1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。
与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。
2.栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。
但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
另外,栈数据可以共享,详见第3点。
堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。
但缺点是,由于要在运行时动态分配内存,存取速度较慢。
3. Java中的数据类型有两种。
一种是基本类型(primitive types), 共有8种,即int, short, long, byte, float, double, boolean, char(注意,并没有string的基本类型)。
这种类型的定义是通过诸如int a = 3; long b = 255L;的形式来定义的,称为自动变量。
第03章Java 语言基础_01数据类型_021、什么是标识符,变量、类、方法、常量都是标识符,命名规则是什么?2、java中的关键字3、八种原始数据类型是什么?字节数?取值范围?4、八种原始数据的赋值规则:1)boolean(true|false)2)char('c'|'中'|67)3)byte(-128~127)、short、int、long4)float、double5)所有数值类型都可以使用十进制、八进制和十六进制表示6)其中float和double还可以使用科学计数法表示7)默认情况下字面值:10代表整型、12.3代表双精度。
8)指定类型下字面值:10.3f代表浮点、12l代表长整型、22.3d代表双精度5、什么是常量什么是变量6、什么是局部变量什么是成员变量/全局变量,局部变量的使用要注意什么(先赋值再使用)?7、变量又分为原始类型变量和引用变量8、各种数据类型的默认值第03章Java 语言基础_02运算符和表达式+控制语句_021、运算符列表:什么是优先级、目数、结合性2、各种运算符操作示例3、&&和||的短路运算,&和|不使用短路运算4、条件表达式复合操作5、if-else if-else语句6、switch语句:什么类型可以放在switch的表达式中、直落问题7、三种循环语句:foreach使用方式8、break、continue使用方式(带标签的使用方式)9、死循环问题第03章Java 语言基础_03字符串_031、java内存模型介绍2、字符串常量与常量池模型介绍:String s1=new String("abc")和String s2="efg"方式3、String创建对象个数问题,String类的常用方法使用,各种数据类型转换4、对于基础类型的变量和常量:变量和引用存储在栈中,常量存储在常量池中5、Byte,Short,Integer,Long,Character,Boolean,String实现了常量池技术,Double和Float不放在常量池中6、如果String可以被继承则会破坏常量池,所以String是final类型的7、java5,StringBuilder 非线程安全,速度更快,建议使用;字符串变量的常用方法8、StringBuilder和StringBuffer的equals和==都是比较地址9、累加性能问题,应该使用字符串变量累加10、字符串解析11、装箱与拆箱第03章Java 语言基础_04数组_031、数组效率比集合类框架高2、数组是存放在堆中的,所以要分配地址空间(内存模型解析)3、一维数组的三种定义方式、数组的初值问题4、如何遍历一维数组5、扩展定义二维数组和遍历二维数组6、扩展定义多维数组和遍历多维数组7、System.arraycopy使用方法8、Arrays使用示例:binarySearch、copyOf、copyOfRange、deepEquals、equals、fill、sort 方法第04章面向对象编程_01~031、什么是对象、类、继承、消息和封装2、类中包含两部分:属性和方法3、如何定义和使用一个类4、面向对象的优点5、java文件的组成:package、import、class、prop、method6、所有类默认导入ng.*7、一个java文件中包含多个类,只有一个为public的同时要和文件名一致8、常用关键字解释第04章面向对象编程_04类和包1、什么是包?为什么要使用包?如何导入一个包?如何命名一个包?(windows的文件结构和命名规则)2、public、protected、private和default修饰符作用第04章面向对象编程_05对象1、如何创建对象?内存模型是什么样的?2、GC机制详解3、对象如何复制?(Clone)4、什么是实例方法和属性?什么是静态属性和方法?5、静态的特点和内存模型是什么?和实例方法以及静态方法相互之间如何调用?6、当直接打印对象时会出现什么信息?第04章面向对象编程_06封装1、什么是属性封装?2、为什么要进行属性的封装?3、如何进行属性的封装?第04章面向对象编程_06类的方法1、类的方法如何定义?包含哪几部分?2、方法的命名规则。
Java基础知识总结(超详细整理)Java语⾔的特点1.⾯向对象⾯向对象(OOP)就是Java语⾔的基础,也是Java语⾔的重要特性。
⾯向对象的概念:⽣活中的⼀切事物都可以被称之为对象,⽣活中随处可见的事物就是⼀个对象,我们可以将这些事物的状态特征(属性)以及⾏为特征(⽅法)提取并出来,并以固定的形式表⽰。
2.简单好⽤Java语⾔是由C和C++演变⽽来的,它省略了C语⾔中所有的难以理解、容易混淆的特性(⽐如指针),变得更加严谨、简洁、易使⽤。
3.健壮性Java的安全检查机制,将许多程序中的错误扼杀在摇蓝之中。
另外,在Java语⾔中还具备了许多保证程序稳定、健壮的特性(强类型机制、异常处理、垃圾的⾃动收集等),有效地减少了错误,使得Java应⽤程序更加健壮。
4.安全性Java通常被⽤在⽹络环境中,为此,Java提供了⼀个安全机制以防恶意代码的攻击,从⽽可以提⾼系统的安全性。
5.平台⽆关性Java平台⽆关性由Java 虚拟机实现,Java软件可以不受计算机硬件和操作系统的约束⽽在任意计算机环境下正常运⾏。
6.⽀持多线程在C++ 语⾔没有内置的多线程机制,因此必须调⽤操作系统的多线程功能来进⾏多线程程序设计,⽽ Java 语⾔却提供了多线程⽀持。
多线程机制使应⽤程序在同⼀时间并⾏执⾏多项任务,该机制使得程序能够具有更好的交互性、实时性。
7.分布式(⽀持⽹络编程)Java语⾔具有强⼤的、易于使⽤的⽹络能⼒,⾮常适合开发分布式计算的程序。
java中提供了⽹络应⽤编程接⼝(),使得我们可以通过URL、Socket等远程访问对象。
8.编译与解释共存Java语法基础标识符: ⽤来标识类名、对象名、变量名、⽅法名、类型名、数组名、⽂件名的有效字符序列。
合法的标识符:由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且⾸字符不能是数字。
不能把java关键字和保留字作为标识符。
标识符对⼤⼩写敏感。
关键字:Java语⾔中已经赋予了特定含义的保留字: const、goto,Java版本中尚未使⽤,但以后版本可能会作为关键字使⽤变量:程序运⾏期间可以被改变的量。