我的Java学习笔记(一)

我的Java学习笔记(一)

变量

变量 - 指代在内存中开辟的存储空间,用于存放运算过程中需要用到的数据;
1.变量在使用前,必须声明+初始化;
声明:类型 变量名
初始化:第一次赋值
2.同名变量不可以重复声明;
3.变量的命名规范:可以由字母、数字、"_“和”$"符组成;首字符不能以数字开头;
4.变量的命名规则:变量的命名需要采用“驼峰命名法”,即如果变量的名字由多个单词组成,除第一个单词外,其他单词的首字母大写,其余的字母小写,例如:salary、javaScore、studentName等。

Java数据类型:

数据基本类型、引用类型

基本数据类型(8种):

byte/short/int/long - 整数
float/double - 小数
char/boolean - 字符/布尔

整数类:

1.赋值的时候,不可以超过类型的取值范围
2.小范围赋值给大范围,自动类型转换/隐式类型转换
3.大范围赋值给小范围,超范围了,如果一定赋值,强制类型转换,保留低位->溢出,精度缺失
4.整数的字面量/直接量,默认类型是int
5.给long赋值,在值的最后加上l/L,例 long a = 10000000000L;
6.int最大值和long最大值
7.获得当前系统时间 - long 毫秒数

浮点类型:

float:单精度 32位 1符号位 8位指数位 23尾数位
float的范围为-2^128 ~ +2^128
double:双精度 64位 1符号位 11位指数位 52尾数位
double的范围为-2^1024 ~ +2^1024
1.小数的直接量默认是double类型
2.精度缺失

单字符类型:

char:16位 没有负数 1111 1111 1111 = 2^16-1 = 65535
char的ASCII码 a-z A-Z (a-97,A-65)
换行;\r-回车;\t-制表符Tab;反斜杠\

boolean类型:

1.boolean类型的值就两个:true/false,true表示条件成立,而false表示条件不成立
2.表示命题是否成立 - boolean类型表达式
3.适用于逻辑运算,表示某个条件是否成立。一般用于程序的流程控制

运算符

运算符(会将左右两边变量统一):±/ ++ – & && | || ! > < >= <= == !=
字符串拼接: "+"可以实现字符串的连接,同时可以实现字符串与其他数据类型的“相连”
“” 和任何变量相加都是字符串
比较运算符: >,<,>=,<=,!=,==结果都是boolean类型
逻辑运算符: &&,&,||,|,!结果都是boolean类型,运算符左右两边都是boolean类型表达式
赋值运算符: =,+=,-=,/=,
=

位运算

位运算: & | ^(异或)
一个数和另一个数异或计算两次,结果还是自己本身(用于加密和解密)

位移运算

位移运算: 补码 - 补位补符号位
>> 右移=/2
<< 左移=*2
>>> 无符号右移->永远补0(正数>>>和>>结果一样,负数>>>变成正数)

三目运算

三目运算: ? :
boolean表达式?值1:值2
boolean表达式为true,结果就是值1,表达式为false,结果就是值2

逻辑控制语句

1.顺序

2.条件分支

if(条件boolean表达式){
符合条件做的事
}
switch(){
case :
}

3.循环

while和do-while语句

whlie(循环条件 boolean表达式){
循环体
}
do{
循环体
}
whlie(循环条件 boolean表达式);

while和do-while语句的区别:

while循环先判断再执行;
do-while循环先执行一次,再判断

for循环语句

for(表达式1; 表达式2; 表达式3){
语句块(循环体)
}

随机数

Math.random -> Double类型,范围[0,1)
int random = (int) (Math.random() * 100);

递归方法

自己调用自己,必须有结束的判断条件

数组

数组(存一堆数 - 类型统一的):

数组的定义

数据类型[ ] 数组名 = new 数据类型[大小]
方式一:只能在声明的同时赋值
int[] a = {1,2,3,4};
方法二:再次赋值时也可以使用
int[] b = new int[] {1,2,3,4,5};
方式一和方式二,都是在数组定义的时候就已经确定了元素和长度
数组长度:数组元素的个数,长度不可变
方式三:只是定义了数组的长度,有默认值0
int[] c = new int[10];

数组排序和方法

1.选择排序:每一轮找出最小的元素放在前面
	public static int[] selectionSort(int[] arr){
		for (int i = 0; i < arr.length - 1; i++){
			for (int j = i + 1; j < arr.length; j++){
				if (arr[i] > arr[j]){
					int temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
		return arr;
	}
2.冒泡排序:比较相邻的元素,将小的放到前面
	public static int[] bubbleSort(int[] arr){
		for (int i = 0; i < arr.length-1; i++){
			for (int j = 0; j < arr.length - i - 1; j++){
				if (arr[j] > arr[j + 1]){
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}
		return arr;
	}
3.插入排序:将数组分为两部分, 将后部分的第一个逐一与前部分每一个元素比较,在合理位置插入
	public static int[] insertSort(int[] arr){
		int i, j, k;
		for (i = 1; i < arr.length; i++){
			t = arr[i];
			// 利用循环查找插入位置:到头j=-1
			for (j = i - 1; j >= 0; j--){
				if (t < arr[j]){
					arr[j + 1] = arr[j];// [j] -> [j+1] 向后移动
				} else{// t不小于arr[j]
					break;// 找到插入位置:t不小于arr[j]
				}
			}
			arr[j + 1] = t;// 插入t -> [j+1]
		}
		return arr;
	}
4.快速排序:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素
5.系统排序:Arrays.sort

方法

方法的五个要素:修饰词、返回值类型、方法名、参数列表、方法体;

Java常用函数

System.arraycopy(arg0, arg1, arg2, arg3, arg4);复制
	// arg0:要复制的数组 - 源数组
	// arg1:从源数组要复制元素的起始位置下标
	// arg2:复制的目标数组 - 到哪个数组
	// arg3:把源数组的元素复制到目标数组的哪个位置开始
	// arg4:要复制的元素个数
Arrays.copyOf(arg0, arg1);
	// arg0:源数组
	// arg1:生成的新数组的长度;从源数组的第一个元素开始(能复制几个元素就复制几个元素)
Arrays.sort(red);自动从小到大排序
Arrays.toString(a);数组转成字符串
str1.equals(str2);比较字符串str1是否与str2相等
System.exit(0);强制退出程序
Math.ceil/floor/abs/sqrt/pow/round/random - 数学函数
String.charAt - 将字符串拆解成字符
long time = System.currentTimeMillis() - 得到格林威治时间自 1970 年 1 月 1 日凌晨 00:00:00 到当前系统时间的毫秒数(返回值为 long 类型)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值