IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java初学总结 -> 正文阅读

[Java知识库]java初学总结

一、java中的数据类型

1.基本数据类型

整型:byte(一个字节)、short(2个字节)、int(4个字节)、long(8个字节)

浮点型:float(4个字节)、double(8个字节)

字符型:char(2个字节)

布尔类型:boolean(大小不固定一般当做int)

默认值:byte(0)、short(0)、int(0)、long(0)、float(0.0f)、double(0.0d)、boolean(false)

2.引用类型

.......

二、变量

1.概念

内存上的一块区域,数据的基本存储单位。

2.组成

变量的数据类型? + 变量名+=+值(数据)

3.种类以及生命周期

局部变量(在方法内部声明的,生命周期跟随着方法被调用产生栈帧而生成,随着方法的调用结束而销毁),实例变量(在类中声明没在方法内声明而且没加static,生命周期跟随着类),静态变量(声明在类中,前面有static,生命周期跟随着类)

三、类型转换

1.数据类型的自动提升

当小数据类型赋值给大数据类型时,自动发生类型提升。

(通过数据存储的范围来判断大小)

规则如下:

byte->short->int->long->float->double

char->int->long->float->double

2.强制类型转换

当大数据类型被赋值给小数据类型时,需要使用强制类型转换。

规则:

大数据类型 +大数据类型变量名=值

小数据类型+变量名=(小数据类型)大数据类型变量名? ?

转换结果

?① 浮点型强转为整型,指直接取整数部分

例如:double a=10.0;

? ? ? ? ? ?int b=(int)a;

? ②当大数据类型的整型的值在小数据类型的整型的范围内,不会发生损失

例如:int a=10;

? ? ? ? ? short b=(short)a;

? ? ? ? ? 此时b的值还是为10

? ③当大数据类型的整型的值超出了小数据类型的整型的值的范围,数据会发生损失

例如:int a=256;

? ? ? ? ?short b=(short)a;

? ? ? ? 此时b的值为1;

四、运算符

1.算术运算符

?基本运算符:+? -? *? /? %

其中最需要注意的是除法

a. int/int的结果还是int,如果需要较为准确的答案是可以用double

例如:

int a=10;
int b=20;
System.out.println(a/b);

此时输出0;

double a=10.0;
double b=20.0;
System.out.println(a/b);

此时输出0.50000;

b. 0不能作为除数

当0作为除数时,会抛异常

c.%表示取模,既能对int取模也能对double取模

例如:

double a=11.5
System.out.println(a%2);

此时输出1.5;

2.赋值运算符

增量赋值运算符:= += -= *= /= %=

?注意:+= 没有自动类型提升。

byte b = 1;

? b = b + 1;

?System.out.println(b);//编译报错

? byte a= 1;

? a+=1;

? System.out.println(a); //编译通过,原因:+=没有自动类型提升,打印结果为2

自增运算符:++? --

int a = 10;
int b = ++a;
System.out.println(b);
int c = a++;
System.out.println(c);

结论:1. 如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别.
? ? ? ? ? 2. 如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值

3.关系运算符

==,? <=,? >=,!=,>,<

表达式的结果类型为布尔类型,这样的表达式称为布尔表达式。

? 注意:用关系运算符连接的表达式都为布尔表达式,

? 关系成立-true;关系不成立结果为false.

4.逻辑运算符

&&? ||? !

注意: 逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean!

a.逻辑与&&

当两个操作数都为true时,结果才为true(短路运算符)

b.逻辑或||

当两个操作数其中一个为true,结果就为true(短路运算符)

c.逻辑非!

操作数为true时结果为false,操作数为false时结果为true

d.&和|

效果与&&和||相差不大,只是不支持短路求值。

5. 条件运算符(三元运算符)

? ?语法:布尔表达式 ? 表达式1: 表达式2;

? ?原理:如果布尔表达式的结果为true,则执行表达式1,否则执行表达式2.

例如:

int a=10;
int b=20;
int c=(a>b?a:b);

此时c的值为b的值

6.位运算符

java中的最小操作单位不是字节,而是二进制位(bite位)

位运算符一共有四个

& | ~ ^

按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.

例如:

int a=3;011
int b=7;111
System.out.println(a&b);//结果为3(011)

按位或|:如果两个二进制位都为0,结果为0,否则为1.

例如:

int a=3;
int b=7;
System.out.println(a|b);//结果为7

? 按位异或^:如果两个二进制位相同则为0,不同则为1.

例如:

int a=3;
int b=7;
System.out.println(a^b)//结果为4

? ?按位取反~:如果二进制位为1则变为0,为0则变为1.

例如:

int a=1;
System.out.println(~a);//结果为-2

7.移位运算符

左移运算符<<

操作数的二进制位左移一位,右边补0

右移运算符>>

操作数的二进制位右移一位,左边补符号位(正数补0,负数补1)

无符号右移运算符>>>

操作数的二进制位右移一位,左边补0

注意:

1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
4. 移动负数位或者移位位数过大都没有意义.

五、分支结构

1.顺序结构

按照代码书写的顺序一步一步的执行

int a=10;
int b=20;
System.out.println(a);
System.out.println(b);
//程序按书写的顺序依次打印a,b

2.分支结构

if语句

基本语法形式1

if(布尔表达式){

}

如果布尔表达式为真则执行{}中的内容

基本语法形式2

if(布尔表达式){

}else {

}

如果布尔表达式为真则执行第一个{}中的内容,否则则执行else{}中的内容

基本语法类型3

if(布尔表达式){

}else if(布尔表达式){

}else{

}

如果第一个布尔表达式为真则执行if{}中的内容,若第二个布尔表达式的内容为真则执行else if{}中的内容,若所以布尔表达式都为假,则执行else{}中的内容

switch语句

switch(整数|枚举|字符|字符串){

? ? case? 内容1{

? ? 内容满足时执行语句;

? ?break;

? }

?case 内容2{

内容满足时执行语句;

break;

? ?}

.....

default :{

内容都不满足时执行;

break;

? }

}

例如:

int day=1;
switch(day){
 case 1{

System.out.println("星期一");
 break;
}
case 2{

System.out.println("星期二");
 break;
}
case 3{

System.out.println("星期三");
 break;
}
case 4{

System.out.println("星期四");
 break;
}
case 5{

System.out.println("星期五");
 break;
}case 6{

System.out.println("星期六");
 break;
}
case 7{

System.out.println("星期天");
 break;
}
default:{
System.out.println("输入有误");
break;
}


}

?注意:

1.break不要遗漏,否则会造成多个分支被执行。

2.switch中的值只能是整数|枚举|字符|字符串。

3.switch不能表示过于复杂的条件。

3.循环结构

1.whlie循环

while(循环条件){
循环语句;
}

循环条件为 true, 则执行循环语句; 否则结束循环

例如:

int num=0;
while(num<10){
System.out.println(num);
num++;
}

这个程序会循环10次,分别打印0到9

注意:

1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.

while中同样有break,他可以让循环提前结束并退出

例如:

int num=0;
while(num<10){
if(num==5){
System.out.println("找到5了");
break;
}
num++;
}

这个程序会在num=5时,退出循环

continue的功能时跳过本次循环进入下一次循环

例如:

int num=0;
while(num<10){
if(num==5){
num++;
continue;
}
System.out.println(num);
num++

}

这个程序不会打印5,他被跳过了。他与break不同的是他不会结束循环而是跳过本次循环进入下次循环。

2.for循环

for(表达式1;表达式2;表达式3){
循环体;
}
表达式1: 用于初始化循环变量.
表达式2: 循环条件
表达式3: 更新循环变量.

例如:


for(int i=0;i<10;i++){
System.out.println("你好");
}

这个程序会打印10次你好

注意?(和while循环类似)
1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行

3.do while循环

do{
循环语句;
}while(循环条件);
先执行循环语句, 再判定循环条件

例如:

int i=0;
do{
System.out.println(i);
num++;
}while(num<10)

注意:

1. do while 循环最后的分号不要忘记
2. 一般 do while 很少用到, 更推荐使用 for 和 while

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 07:59:26  更:2021-11-25 08:00:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 21:18:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码