java基础知识整理

注释

注释是对代码的解释,让程序员能在最短的时间内看懂代码,而程序运行时不会检测我们写的注释,Java中注释分为三种

1)单行注释://注释内容
说明:只能注释一行
2)多行注释:/注释内容/
说明:可以注释多行
3)文档注释:/*注释内容/
说明:java中的特有注释,可以通过javadoc命令生成类的说明文档
强调:注释是一定要写的,而且要简洁明了不要写错误的注释
写在注释之中的内容不会被javac 命令编译,更加不会被JVM虚拟机解释。

Java的项目结构:

项目-----> 包------->类
Eclipse的项目里面
Src 用于存放我们编写的.java文件
Bin 用于存放编译后的.class文件

标识符的命名规则:

标识符 实际上就是起个名字,而名字是不能乱起的需要符合一定的规则。

通用规则:

  1. 标识符由26个英文字符大小写(azAZ)、数字(0~9)、下划线(_)和美元符号($)组成。
  2. 不能以数字开头,不能是关键字
  3. 严格区分大小写
  4. 标识符的可以为任意长度

细致规则:
项目名:每个单词的首字母都要大写
包 名:所有字母全部小写,反域名形式,多个单词用.分割(每个.实际上就是一层文件夹)
正域名: www.baidu.com
反域名: com.baidu.www
类 名: 与项目名相同
变量名:首字母小写,其余单词首字母大写 baiDu
方法名:相同于变量名
常量名:所有字母全部大写,多个单词使用_分割
java的关键字对Java的编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。简单的来说关键字已经被Java语言占用都有自己特定的意义,不能使用在其他地方

在这里插入图片描述

Java的数据类型:

byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0
short:短整型,在内存中占16位,即2个字节,取值范围-32768~32767,默认值0
int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0
long:长整型,在内存中占64位,即8个字节-263~263-1,默认值0L
float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0
double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0
char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空
boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false
简单点说就是
byte short int long boolera char float double
1 2 4 8 1 2 4 8
基本数据类型之间的转换分为自动转换和强制转换
所有的基本数据类型都不能自动转换为byte,所以需要使用强制转换,使用强转需要注意避免精度损失以及数据溢出。
只有一个字节的byte 可以自动转换为short,其他类型都需要强制转换。
byte,short,char 都可以自动转int,其他类型需要强转。
byte,short,int,char 都可以自动转long,而浮点型需要强制转换
只有double 不能自动转为float
所有基本数据类型都能自动转为double
虽然char是两字节,但是在类型转换的时候因为其优先级是最低的,所以所有类型都不能自动转换为char
1:boolean 不能参与数据类型的转换
2:自动转换的时候浮点型的优先级最高,char的优先级是最低的。
3:相同类型的数据(单纯整数,或单纯浮点)字节数较小的可以自动转换为字节数较大的类型。
4:强制转换容易造成精度损失以及数据溢出
char 字符型:当我们给char赋值为数字的时候,其会去根据字符编码表自动转换为对应的字符

自动类型转换

可以将一个数赋值给更大数值范围的变量,例如可以将byte类型的变量赋值给short类型的变量可以将short类型的变量赋值给int类型的变量可以将int类型的变量赋值给long类型的变量。
Java内部其实做了工作就是自动将数值进行了类型提升,就叫做自动类型转换(也叫隐式类型转换)
转换规则:从存储范围小的类型到存储范围大的类型。
具体规则:byte→short(char)→int→long→float→double

强制类型转换

强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换
转换规则:从存储范围大的类型到存储范围小的类型。
具体规则为:double→float→long→int→short(char)→byte
语法格式为:(转换到的类型)需要转换的值
案例:
double d=3.14;
int i=(int) d;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出c

变量

用于存储可变数据的容器。
变量特点
1)在内存中开辟一块空间
2)该空间用来存储特定类型的数据
3)在类型的取值范围内数据可以随意改变
4)该空间必须有名字

引用数据类型:

1:类(所有的类,包括我们自己写的类都算引用数据类型)
2:接口(后面讲)
3:数组
4:枚举

类也是一个数据类型,所以我们在使用的时候一般也需要创建一个变量出来,然后我们通过变量名来操控这个类。
创建一个类的变量分为以下两步:
1:声明 类名称 变量名;
2:初始化 变量名=new 类名(参数);
上面两步可以合成一步: 类名 变量名 = new 类名(参数);

定义一个变量来接收在控制台输入的值,可以是数字也可以是字符串

Math类

:中给我们提供了随机数的静态方法,这个随机数的范围在 0.00000001~ 0.99999之间 最大无线接近1 最小无线接近0
如果让这个数乘以10的话 会变成最大 9.9999999 ~ 0.00000010
将上面的数字转换成int数字会变成随机的9~0
在这里插入图片描述
输出结果为1~10的随机数

在这里插入图片描述
输出结果为随机的大写A~大写Z的 字符

算数运算符

在这里插入图片描述

赋值运算符

:=,+=,-=,=,/=,%=
使用变量进行+=,-=,
=,/=,%=赋值的时候会在变量本身值的基础上进行+,-,*,/,%
的操作,然后再次赋值给变量本身

在这里插入图片描述 逻辑运算符

在这里插入图片描述
&&: 用于多条件并行使用,只有所有的条件都为true,返回结果才为true。当左侧条件不成立的时候,就不再执行右侧代码

	 &: 用于多条件并行使用,只有所有的条件都为true,返回结果才为true。当左侧条件不成立的时候,依然执行右侧代码 

	 ||: 用于多条件选一的时候,只要有一个条件为true结果就为true

当左侧条件成立的时候,则不再执行右侧代码
|: 用于多条件选一的时候,只要有一个条件为true结果就为true
当左侧条件成立的时候,依然执行右侧代码

位运算符

在这里插入图片描述

三目运算符

语法:(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
因为有三个表达式所以称为三元(目)运算符

1获取两个数中大数。
int x=3,y=4;
int x = 1;
int y = 2;
int z;
z = x > y ? x : y;
System.out.println(z); //2

2判断一个数是奇数还是偶数。
int x=5;
System.out.println((x%2==0?“偶数”:“奇数”));

运算符优先级

在这里插入图片描述

转义字符

" 输出一个双引号
’ 输出一个单引号
\ 输出一个斜杠
\n 换行
\t 水平制表符(多个空格)
转义字符 名称 Unicode
\b Backspace (退格键) \u0008
\t Tab (Tab键盘) \u0009
\n Linefeed (换行) \u000A
\r Carriage Return(回车) \u000D
\ Backslash (反斜杠) \u005C
’ Single Quote (单引号) \u0027
" Double Quote (双引号) \u0022

输出语句

System.out.println("");
System.out.print("");
System.err.println("");
print 代表只进行输出,不进行换行操作
println 代表先输出,然后进行换行操作,也就是说在输出语句执行之后,光标会在下一行
out 是正常输出, err 输出是红色的,经常用于输出错误信息。

If语法

if(布尔表达式){
表达式为true时候执行的代码。
}else{
表达式为false时候执行的代码。
}

if 是可以进行嵌套的,与三目运算符一样
if 类似于我们说的 如果 也就是条件成立才 会发生的事情,else类似于我们说的否则,只有当if不成立才会进入到else之中。

特点

1)条件成立执行{}中的代码
2)一旦有一个条件成立,执行完{}中的代码直接跳出条件语句
3)如果if语句下只有一行代码,{}可以不写,但是 不建议,因为代码的阅读性就很差
4)else的作用是除了上边列出的情况之外的所有情况

For循环:

循环都需要有一个开始条件,也需要有一个结束条件,而一般的循环都需要一个计数器。

	  for(声明变量(声明一个计数器);循环条件;改变迭代计数器的值){
	  		符合循环条件的时候执行的代码
	  }

for循环执行顺序:for(int i=1;i<11;i++){}
1:int i=1 第一步执行创建变量的操作,并且这一步骤不进入本身的循环。
2:i<11; 第二步执行判断循环条件的操作,并且每一次循环都会执行此步骤直到循环结束
3:代码 第三步执行循环作用域中的代码,每次循环都会执行一次。
4:i++ 第四布执行改变初始变量值的操作,每次循环都会执行一次。

for循环的小括号内可以不写任何东西,但是必须要有;但是虽然语法上支持这样写,可是不建议大家使用。

switch分支选择语句

switch (值) {
case 值:
当前case中的值 与switch小括号中的值如果一致,则执行这里的代码(case中的值不能重复)
break;
case 值:
当前case中的值 与switch小括号中的值如果一致,则执行这里的代码(case中的值不能重复)
break;
default:
当所有case中的值都没有与switch匹配成功的话,则执行default中的值()
break;
switch:只支持具体的值的对比,不支持范围对比,switch 支持byte,short,int,char,string,枚举
}

特点

1)switch语句支持的数据类型有byte,short,int,char,JDK1.7之后支持String,JDK1.5之后支持枚举 2)switch语句中case的值的类型要跟传进来的变量的类型一致
3)case和default的顺序是可以随便写的
4)如果default在最后一行,break可以不写
5)break是用来跳出switch语句的,如果不写break,会继续往下执行,而if会自己跳出
6)switch同样也可以嵌套
7)default相当于if语句中的else

if与switch区别

1)做区间判断使用if语句
2)如果判断的数据比较少,而且数据类型是switch语句支持的,就是用switch,因为结构比较清晰

break 与case

break:打断当前作用域的代码。
case的穿透性:case 有一个特性就是当与switch匹配成功的时候,接下来的所有case都不再进行匹配,而是直接执行里面的代码,所以需要在每一个case下面加上break,用来打断switch代码,来防止case的穿透性。当然我们也可以利用case的穿透性。

while和do while区别

while:先判断条件,只有条件满足才执行循环体。
do while: 先执行循环体,再判断条件,条件满足,再继续执行循环体。
简单一句话:do while:无论条件是否满足,循环体至少执行一次。
注意一个细节do while 后面的分号;

while和for的区别

1、for里面的两个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
2、while与for可以互换,区别在于for为了循环而定义的变量在for循环结束时就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
3、最简单无限循环格式:while(true) , for(;😉,无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。推荐使用while(true)

break与continue

continue: 代表跳过本次迭代,继续开始下一次循环。
注意:continue必须写在所在作用域的最下面,其下面不能再有其他代码,因为注定不会执行。
break:可以破坏当前作用域的代码,如果写在循环之内,默认停止最内层循环,可以使用break标记来破坏指定层次的循环。

两者区别

1.continue是跳出循环,break结束本次循环,继续下一次循环
2.break和continue在单独使用时下边不能有其他代码,因为执行不到
3.break可以用在循环语句和switch中,continue可以使用在循环中
4.break和continue作用于离它最近的循环结构,可以通过给循环语句起名字来跳出指定的循环

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值