欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java基础学习部分

程序员文章站 2022-05-10 11:03:49
...

1.数据类型 :

  • 基本类型(8)

    bit 1个电位
    byte 字节,8个bit
    Kb 1024 byte
    1 2 4 8 4 8 2 1
    byte short int long float double char boolean

2.基本类型字面值(5)
34353 int
byte short char
3.14 double
L F D
0x 0 \u 字符16进制
3.运算规则
运算结果与最大值保持一致 且3/2=1
byte short char 运算时先转换成int 型
浮点型数据字面值 double
字面值后缀: L F D
进制前缀: 0x 16进制 0 八进制 \u char类型16进制
运算溢出 类似时钟
字符型运算不精确 2-1.9= 0.100000000009
特殊值 Infinity 3.14/0 NaN Math.sqrt(-1)

4.运算符
^ 异或
>> 带符号位右移
>>> 不带符号位右移
&& 与 &的区别: 当&&的左边为false时,右边不执行,返回false
&的两边都会执行
~按位取反
负数的值:按位取反再加一的到正数的值,在变下符号

5.流程控制
if
switch(变量或表达式) {case 30: case 50: break; default:}
case:byte,short,char,int enmu
从匹配正确的位置开始执行,直到break,如果没有,则执行到结束
如果都不匹配,则从头执行到尾
for
循环嵌套
break 中断、跳出
continue 继续进入下一轮循环
循环命名:在内层循环,控制外层循环,需要对外层循环命名
outer:
for() {
for() {
break outer;
continue outer;}}
while
do while

6.数组
创建 int[] a = new int[5];
新建5个长度的int[]数组
每个位置保存默认值0
把数组的内存地址,保存到变量a
int[] a = {5,3,5,87,9,4,3,21};
a = new int[]{3,2,1,4};
长度 a.length
数组,字符串一旦创建,长度不可变
最大下标 a.length-1
遍历 for(int i=0;i<a.length;i++){ a[i] }
输出 System.out.println(Arrays.toString(a));

例:	int n = 5 + new Random().nextInt(6);
  		int[] a = new int[n];
  		for(int i=0;i<a.length;i++) {
     		a[i] = new Random().nextInt(100);}

 	数组工具类: 	Arrays.toString(数组)  把数组中的值,连接成字符串
		Arrays.copyOf(数组, 新的长度)   把数组复制成新的,指定长度的数组(新建数组)
		Arrays.sort(数组)   
			基本类型:优化的快速排序
			引用类型:优化的合并排序
		Arrays.binarySearch(数组, 目标值)   二分法查找 在有序数组中,查找目标值位置		
		Arrays.fill(数组,值)   填满指定数组

7.二位数组
新建:
int[][] a = new int[3][2]; 外围数组长度3 内部的三个数组长度是2 共创建了4个数组
int[][] a = new int[3][]; 只创建一个外围数组 每个位置保存默认值 null(空)
可以之后,再新建数组,放入外围数组
int[][] a = {{3,7,9,1},{6,7},{8,2,6,9,1}};
遍历:
for(int i=0;i<a.length;i++) {
for(int j=0;j<a[i].length;j++) {
a[i][j]}}
8.变量
局部变量
定义在方法中,或局部代码块中
局部变量必须手动初始化
局部变量作用域、作用范围,只在它定义的代码块内有效
局部变量作用域内,不能重复定义
成员变量
定义在类中
自动初始化,有默认值 数字 0或0.0 布尔值 fasle 引用类型 null
访问范围,受访问控制符控制

递归 递归是在一步一步的简化问题,把问题简化成最简问题,再倒推求出结果
void f() {
f();}