一.java语言的特点?
1. java语言是面向对象的。
2. java语言拥有比较好的安全性和健壮性。java的强类型机制,异常处理,垃圾的自动收集,内置的类库。
3. java语言是跨平台的。(一次编译,处处运行)
4. java语言是解释型的。 解释性语言:javascript,PHP,java 。编译性语言:c/c++ 。
区别是:解释性语言编译后的代码不能直接被机器执行,需要解释器解释后才能被执行。 编译性语言编译后可以直接被机器执行。
二.jdk 、jre和jvm的关系
jdk: jre+开发工具包(bin目录下有javac.exe,也就是编译java源文件的工具)
jre: jvm+核心类库 (bin目录有下有java.exe,也就是运行.class文件的工具,没有javac.exe)
jdk给开发人员用,jre给想要运行已经编译好的java程序的人用。
三. 转义字符
\t:一直制表位,实现对齐的功能
\n:换行符
\\:一个\
\":一个"
\':一个'
\r:一个回车, 也就是光标回到当前行的首位置
四.基本数据类型
1字节=8bit
自动类型转换: 精度小的类型自动转换为精度大的数据类型.
数据类型按精度(容量)大小排序为:
自动类型转换细节: 多种类型的数据混合运算时,系统自动将所有数据转换成容量大的那种数据类型,再进行运算.
注意:byte,short,char三者不能自动转换,他们三者计算时(无论是单独一个类型还是三者混合计算),会先转换为int类型再进行计算(所以结果也是int类型)。
public class Test03 {
public static void main(String[] args) {
byte a=1;
byte b=2;
byte c=a+b; //编译报错,因为a+b是int类型的,不能直接赋给byte类型的值
}
}
注意:可以将一个整型常量直接赋给byte,char,short(前提是在他们的范围内),但是不能将一个整型常量直接赋给byte,char,short,因为需要进行强转。
例如:(1) int a = 10; char c=a; //会报错,因为a是int类型,需要强转才能转为char类型。
(2)char a=10; //不会保存,因为10是一个整型常量,并且在char的容量范围内,
五.基本类型与String类型的转换
基本类型转String类型: (1)直接在基本类型后加上""即可 例如: int a = 10; String str = a+"";
(2)使用String.valueOf() 例如: int a = 10; String str= String.valueOf(a);
String类型转基本类型: (1)使用基本类型对应的包装类型的想应方法.例如: String str ="123";
int a = Integer.parseInt(str);
六.算数运算符
1.%的实质:a%b=a-a/b*b 例如: -10%3= (-10)-(-10)/3*3=-1;
2.++i 自增 等价于 i=i+1; i++ 自增 等价于 i=i+1;
如果 ++作为表达式使用: ++i : 先自增再赋值; i++:先赋值再自增;
例如: i=i++ ; 计算机计算规则:temp(临时变量)=i;i=i+1;i=temp;
七.关系运算符
八.逻辑运算符
逻辑与 和 短路与的区别: 逻辑与时,符号两边都要判断是否真,而短路与是只要前边的为假,后边的那个就不再执行判断。
a^b:a与b相同时为false,不同时为true。
九.赋值运算符
=、+=、*=、-+..
其中有一个细节,那就是+=这类运算符,举个例子 int a=10;a+=2; 等价于int a=10;a=a+2;
那么细节在哪里呢,我们知道byte,short,char在进行运算时,会转成int类型进行计算,我们看一个例子: byte a = 10; a+=2; 等价于=》 byte a = 10; a= (byte)(a+2); 其中是有一个强转的。
十.三元运算符
条件表达式?表达式1:表达式2;
运算规则:
1.如果条件为true,运算后的结果是表达式1;
2.如果表达式为false,运算后的结果是表达式2;
十一.java标识符规则
1、必须由字母、数字、下划线_及$组成;
2、不能以数字开头;
3、不能与关键字冲突;
4、不能和java类库的类名冲突;
十二.四种进制
1、对于整数,有四种表示方法:
二进制: 满2进1 , 以0b或0B开头
十进制: 满10进1
八进制: 满8进1,以数字0开头
十六进制:满16进1, 以0x或0X开头表示
2.原码、反码、补码
java中有7个位运算:
&:按位与
|:按位或
^: 按位异或
~: 按位取反
>>: 右移 正数右移n位相当于原数 \2^n , 例如: 5>>3 相当于 5\(2^n)
<<: 左移 正数左移n为相当于原数 *2^n, 例如: 5<<3 相当于 5*(2^n)
十三.数组
1.数组的定义:
public static void main(String[] args) {
int[] arr1 = new int[3]; //定义但是没有赋值。默认为0
int arr2[] = new int[3]; //定义但是没有赋值,默认为0
int[] arr3 = new int[]{1,2,3};//定义并且赋值。
int[] arr4 = {1,2,3}; //定义并且赋值
int[] arr5; //此时arr5为空,此时还没有分配内存空间.
arr5=new int[3];
}
2.数组使用注意事项和细节
1) 数组是多个相同类型数据的组合,实现对这些数据的统一管理
2) 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
3) 数组创建后,如果没有赋值,有默认值
int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000,boolean false,String null
4) 使用数组的步骤 1. 声明数组并开辟空间 2 给数组各个元素赋值 3 使用数组
5) 数组的下标是从 0 开始的。
6) 数组下标必须在指定范围内使用,否则报:下标越界异常,比如
int [] arr=new int[5]; 则有效下标为 0-4
7) 数组属引用类型,数组型数据是对象(object)