JAVA基础知识整理----JAVA的基础程序设计基础
JAVA的基础程序设计基础
数据类型
四种整形数据
浮点型
布尔型
char型
类型转化
自动型转化
-
自动向精度高的类型转化 加减法是需要注意,会自动类型转化。如: short s =1 s= s+1 这里会将s转化为int类型 会报错 short s =1 s += 1 这里不会转化类型
强制类型转化
-
逆向转化需要括号(强制类型转化)
包装类 自动拆装箱问题
-
由javac处理 java的编译器 自动装箱 使用vlaueOf()方法 自动拆箱 使用对应的的Value方法
128陷阱
-
自动装箱是的valueOf方法会创建一个【-128 ~127】的数组,所以当值在这个范围内是返回的是一个数组中的地址。当值相同时就会指向一个位置。当数值超过这个范围那么就会新创建一个对象储存数值返回对象地址。 == 判断的是地址(引用类型) 使用equal方法,如果值相同则返回true
引用类型
字符串
-
字符串不可变 底层的char数组是final修饰的,表示不可以等于另外的数组。 字符串本身没有提供任何修改char数组内容的方法 字符串本身也是final修饰的。(防止通过继承的方式改变值) 不可变的好处 可以共享 字符串常量池随之jvm版本的变化位置的改变 JDK6.0及以前的版本是,字符串常量池是放在堆的Perm区的。Perm区是一个类静态的区域,主要存储一些加载类的信息,常量池,方法片段等,默认大小只有4m,一旦常量池中大量使用intern是会直接产生java.lang.OutOfMemoryError:Perm Gen Space错误。 Jdk7.0版本中,字符串常量已经从Perm区转移到正常的Java Heap区域了。为什么移动,Perm区太小是主要原因。 Jdk8.0已经直接取消了Perm区域,而新建立了一个元区域,应该是JDK开发者认为Perm区域已经不适合现在的Java发展了。
final修饰符
-
修饰变量 基本数据类型不可以被第二次赋值 引用数据类型不可以重新指向其它地址 修饰类 不可以生成子类 修饰方法 不能被重写
数组
类
-
重写 两个类 方法名相同 返回值类型相同 重载 一个类 方法名相同 参数列表不同 返回值类型相同
大数值问题
自增自减问题
-
i++ 先赋值后+1 ++i 先+1后赋值
位运算
-
与 符号 and & 需要转化为二进制数据 当两个位都是1时输出1,否则输出0 或 符号or | 当两个位有1就输出1,否则输出0 异或 可以用在节省空间和数据库设计上 符号 xor ^ 当两个位相等则为0,不相等则为1 左移 符号 << 符号左侧数值 按位左移 符号右侧数值指定的位数,并在低位处补0 右移 符号 >> 右移运算符,符号左侧数值 按位右移 符号右侧数值指定的位数,若为正数则高位补0,若为负数则高位补1
控制流程
-
if else for while do while switch case
输入输出
-
简单输入 Scanner in = new Scanner(System.in) in.nextLine 读取下一行 in.next() 读取下一个单词以空白符为分割 in.nextInt() 读取下一个整数 in.nexyDouble 读取下一个浮点类型的 in.hasNext 判断下一个是否还有单词 in.hasNextInt 判断下一个是否还有int in.hasNextDouble()判断下一个是否还有double 简单输出 System.out.printf();
