Java学习笔记.
来源:互联网 发布:windows.old删了的后果 编辑:程序博客网 时间:2024/05/17 23:07
Java学习笔记
计算机的作用:储存和计算。
计算机的组成:输入单元,输出单元,储存单元,控制单元,元素单元。
变量:表示内存中的某一块内存空间。在Java中变量可以看作是某一块内存空间中的数据。内存空间的别名。通过变量可以找到对应的内存空间以及内存空间中的数据。
一:数据类型
数据类型:是用来确定要分配的内存空间大小以及数据储存方式的
数据到底是如何储存在内存中的?
计算机中是一个二进制的世界,只有0和1两个数字,每一个0或者1叫做一个二进制的位[bit/比特]。0+0=0,1+0=1,0+1=1,1+1=10.
现实生活中通常十进制表示数字
十进制二进制八进制十六进制
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012a
11101113b
12110014c
13110115d
14111016e
15111117f
16100002010
4G内存有多少位?
1G=1024mb,1mb=1024kb,1kb=1024byte,1byte=8bit
计算机中最小的储存单位是位[bit/比特]
计算机中最小的有意义的储存单位是字节[byte]
计算机在分配储存单元的时候是以字节为单位的
1.基本类型
基本类型可以直接用二进制表示的类型
整数类型:
字节型 byte 8bit/1字节-128~127
短整型 short 16bit/2字节-32768~32767
整形 int 32bit/4字节-21亿~21亿
长整型 long 64bit/8字节-900亿亿~900亿亿
浮点类型[表示小数]
单精度 float 32bit/4字节 最多保留8位有效数字,最后一位不精确
双精度 double 64bit/8字节 最多保留16位有效数字,最后一位不精确
字符类型
字符型char 16bit/2字节0~65535
‘a’ ‘A’ ‘中’ ‘0’
将每一个字符对应一个数字,这个数字叫做这个字符的Unicode编程
布尔型
Boolean 1bit 真true 假false
1.引用类型
数组类型
类类型
接口类型
数据类型之间的相互转换:
自动转换:按照数据类型能够表示的数据范围,小范围的可以自动转成大范围的
byte->short->int->long
float->double
char->int
int->float
long->double
语法格式:
int a=100;
float b=a;
强制转换:将数据的类型从大范围强制转成小范围
语法格式:
float a=100F;
int b=(int)a;
二:运算符
1.赋值运算符
相同类型之间的数据可以赋值
int t=10;
int a=20;
a=t;
2.算术运算符
二元运算符
+ - * / %
/ 除法:
整数相除,结果是整数,会丢掉余数。
浮点数相除,会除尽,保留对应的有效位数
整数和浮点数相除,会先将整数自动转换成浮点数,在相除
PS:
20/3+10/4=6+2=8
20/3+10/4=80/12+30/12=(80+30)/12=110/12=9
% 取模[计算整除之后的余数]
整数和浮点数一样,都是计算整除之后的余数。
混合运算符
+= -= *= /= %=
a+=b -> a=a+b
一元运算符
++ --
a++ -> a+=1 -> a=a+1
A-- -> a-=1 -> a=a-1
前置++(--)和后置++(--)的区别:
a++ 先计算其他,然后计算++
++a 先计算++,然后计算其他
++和--的优先级是高于二元算术运算符和混合运算符的
关系运算符
关系运算符:是用来判断两个数据之间的大小的
运算的结果是一个boolean值
== 如果相等,则为true,不相等为false
!= 如果不相等,则为true,相等为false
> 如果前面的数据大于后面的数据,则为true,否则为false
< 如果前面的数据小于后面的数据,则为true,否则为false
>=
<=
逻辑运算符
逻辑运算符:用来对布尔值进行运算的,运算的结果是布尔值。
! 逻辑非 原来是真就变成假,原来是假就变成真。
& 逻辑与[并且]所有条件都为真,则为真,否则为假
&& 短路与 所有条件都为真,则为真,否则为假。将最有可能为假的表达式写在前面。
| 逻辑或[或者]只要有一个条件为真,则为真,否则为假
|| 短路或 只要有一个条件为真则为真,否则为假。将最有可能为真的表达式写在前面。
条件运算符[三目运算符/三元运算符]
?:
表达式1?表达式2:表达式3
表达式1一定是一个关系表达式或者逻辑表达式
当表达式1的结果为真的时候,就执行表达式2
当表达式1的结果为假的时候,价值型表达式3
例案:计算|a-b|
int c=a-b>0?a-b:b-a
位运算符
按照二进制位进行运算
& 按位与 1&1=1,1&0=0,0&0=0.相同位都是1,则为1,否则为0。任何数&1都等于原数。任何数&0都等于0。
| 按位或 1|1=1,1|0=1,0|0=0.相同位都为0,则为0,否则都为1.
^ 异或 1^1=0,1^0=1,0^0=0.相同位值相同,则为0,否则为1.a和b异或的结果,再异或a,结果为b。异或b,结果为a。交换a和b的值。
位移运算符
<< 左移 在低位[右边]加0
>> 右移 整数在高位补0,负数在高位补1
>>>无符号右移 不管正负,都是在高位补0
位运算都是按照int类型来计算的
三.流程控制
1.顺序结构
程序会按照代码的编写顺序一行一行执行,上一行没有执行完,是不会执行下一行的
2.分支结构
程序会按照一定的条件有选择的执行某一些代码
if...
if...else...
if...else...if...else...if...else...
switch...case...case...case...default...
格式:
If(条件){
当条件为真的时候要执行的代码
}
格式:
Switch(数字){
case数值1:
Break;
case数值2:
break;
default:
}
3.循环结构
程序按照一定的条件重复的执行一代码
for先判断条件是否满足,如果满足才执行一次循环,执行完之后再判断。
while先判断条件是否满足,如果满足才执行一次循环,执行完之后再判断。
do...while...先执行一次,再判断条件是否满足
格式:
for(声明变量并赋值;循环条件[必须是boolean值];变量自加或自减){
要重复执行的代码
}
格式:
while(;循环的条件;){
要重复执行的代码
}
格式:
do{
要重复执行的代码
}while(;循环的条件;);
4.跳转结构
用来跳转到相应的位置
continue结束本次循环跳转到下一次循环的开始
break结束当前整个循环,跳转到循环结尾的位置。在多层循环中,默认只能够跳出break所在的循环。如果要跳出整个循环,需要给循环定义一个标签。break标签名表示跳转到标签所代表的循环结尾处。
System.out.println(“循环开始”);
aaa:
for(int i=0;i<10;i++){
int num=0;
while(num<10){
num++;
if(num*i==25){
break aaa;
}
System.out.println(“num:”+num);
}
System.out.println(“i:”+i);
}
System.out.println(“循环结束”);
return跳出整个函数,跳转到函数的结尾处
四.数组
1.数组
数组:一组数据[用一个变量表示多个数据]
定义数组
int a[]=new int[a.length]
int[] a=new int[a.length]
Int[] t=new int[]{1,3,5,7,9};
Int[] t={1,3,5,7,9}(上面那种的简单写法)
存放数据
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;//错误ArrayIndexOutofBounds数组下标越界
取出数据
int t=a[0];
int t1=a[1];
修改数据
a[o]=2;
获取数组长度[数组能够存储的数据个数]
int len=a.lenggth;
数组的特点
数组的每个存储空间的地址是连续的
数组的每个存储空间都有一个编号,叫做数组的下标[索引]
数组的下表是一个从0开始的连续递增的整数
数组的最大下标=数组长度-1
- Java学习笔记--CSS笔记
- Java学习笔记001
- Java 学习笔记
- java 学习笔记
- Java学习笔记
- java 学习笔记
- java学习笔记
- java学习笔记
- java学习笔记-1
- java虚拟机学习笔记
- java虚拟机学习笔记
- java虚拟机学习笔记
- Java学习笔记1
- Java学习笔记2
- java学习笔记(1)
- java学习笔记#2
- java学习笔记1
- java 学习笔记
- tensorflow笔记:多层CNN代码分析
- linux下各个符号代表的含义
- HDU 1711 KMP Water~
- 啊哈算法搜索应用之再解炸弹人(DFS与BFS)
- CS/BS的区别
- Java学习笔记.
- 24
- 鸡汤_成功者与平庸者的十大区别
- 递增排序,递减排序,非递减排序,非递增排序
- 版本控制之svn命令行下检出、提交、更新
- 值传递、指针传递、引用传递的区别
- 跳跃表
- thinkphp5 数据库 链接 Connection
- Spring MVC(四)封装表单参数的控制器(AbstractCommandController)