java语言概述
1、java8的新特性。
重新设计的接口语法,Lambda表达式,方法引用,构造器引用,函数式编程,流式编程,新的日期,时间API等。
2、java程序运行机制
通过编译生成与平台无关的字节码,使用java解释器解释执行。JVM是一个抽象的计算机,它具有指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。其技术规范:指令集、寄存器、类文件的格式、栈、垃圾回收堆、存储区。
3、jdk和jre
jdk(java SE Development Kit),包括java编译器、java运行时环境和Java类库等。jre(java runtime environment),即java运行时环境。
二、数据类型和运算符
1、java关键字
java一共有50个关键字,同时还有3个特殊的直接量:true,false,null。不能用于标识符。
2、数据类型分布
java是强类型语言:所有变量必须先声明后使用;指定类型的变量只能接受类型与之匹配的值。
java语言类型包括两类:基本类型和引用类型。
基本类型:boolean类型和数值类型
数值类型:整数类型和浮点类型
引用类型:类、接口、数组,null类型。null类型可以转化为任何引用类型。
3、基本数据类型
byte(1个字节),short(2),int(4),long(8),char(2),float(4),double(8),boolean(1)
4、数据类型需要注意的地方
整型默认是int,浮点型默认是double。
0开头八进制,0x开头16进制,0b开头二进制。不区分大小写。
正无穷或负无穷或非数值。(Double)Float.POSITIVE_INFINITY,NEGATIVE_INFINITY,NAN。
NAN不与任何值相等。
数值中可以使用下划线分割。
5、类型转换
包括自动类型转换和强制类型转换。
String转int。Integer.parseInt(a)。
int转String。a + ""
八种基本数据类型的包装类:Boolean,Byte,Character,Short,Integer,Long,Float,Double
6、直接量
程序中通过源代码直接给出的量。
基本数据类型和字符串类型和null类型。
对于String类型的直接量,当程序第一次使用某个字符串常量时,java会使用常量池缓存该字符串常量。
常量池:在编译期被确定,保存在已编译的class文件中。包括类,方法,接口中的常量,也包括字符串直接量。
7、 运算符
如果比较的是两个数值类型,即使他们的数据类型不相同,但是值相同,也返回true。97=='a'
和5.0==5
位运算符 | 逻辑运算符 | ||
---|---|---|---|
& | && | ||
& | |||
~ | |||
^ | |||
<< | ! | ||
>> | ^ | ||
>>> |
8、数组
数组静态初始化:
int[] arr = new int[]{1,2,3};
int[] arr = {1,2,3}
动态初始化:
int[] arr = new int[4];
Object[] book = new String[5];
动态初始化和静态初始化不能同时使用。
Arrays类
在java.util包下
int binarySearch(type[] a, type key)
a中没有key,则返回负数,否则返回索引。要求a按升序排列。
int binarySearch(type[] a, int fromIndex, int toIndex, type key)
type[] copyOf(type[] original, int length)
length为新数组的长度。
type[] copyOfRange(type[] orginal, int from, int to)
boolean equals(type[] a, type[] b)
void fill(type[] a, type val)
void file(type[] a, int fromIndex, int toIndex, type val)
void sort(type[] a)
void sort(type[] a, int fromIndex, int toIndex)
String toString(type[] a)
System
类里面也有一个数复制的方法:
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)