JavaSE学习笔记day01(关键字)

注释

Java规范的三种注释方式:

  1. 单行注释 格式://注释文字
  2. 多行注释 格式: /* 注释文字 */
  3. 文本注释(Java特有) 格式:/** @author 指定java程序的作者 @version 指定所用的版本 */

注意:
①对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
② 多行注释里面不允许有多行注释嵌套。
③ 内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

作用:
①提高了代码的阅读性;调试程序的重要方法。方便他人,方便自己。
②将自己的思想通过注释先整理出来,再用代码去体现

关键字与保留字

关键字的定义和特点
定义:被JAva语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写
在这里插入图片描述

保留字
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字
byValue、cast、future、generic、inner、operator、outer、rest、var、goto、const、

标识符

java对各种变量、方法和类等要素命名时使用的字符序列称为标识符
技巧:凡是自己可以起名字的地方都叫标识符
定义合法标识符规则:

1、由26个英文字母大小写,0-9,_或$组成
2、数值不可以开头
3、不可以使用关键字和保留字,但能包含关键字和保留字
4、java中严格区分大小写,长度无限制 5、标识符不能包含空格

java中的名称命名规范:

包名:多单词组成时所有字母都小写:xxxxxxzzzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时。第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ

变量

变量的概念:

内存中的一个存储区域
该区域的数据可以在用一类型范围内不断变化 变量是程序中最基础的存储单元。
包含变量类型、变量名和存储的值

变量的作用:

用于在内存中保存数据
使用变量注意: java中每个变量必须先声明,后使用
使用变量名来访问这块区域的数据
变量的作用域:其定义所在的一对{}内
变量只有在其作用域内才有效 同一个作用域内,不能定义重名的变量

变量的分类(按数据类型分类)

在这里插入图片描述
在这里插入图片描述
1.整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)

① byte范围:-128 ~ 127 ② 声明long型变量,必须以"l"或"L"结尾 ③ 通常,定义整型变量时,使用int型。

2.浮点型:float(4字节) \ double(8字节)

① 浮点型,表示带小数点的数值
② float:单精度,尾数可以精确到7位有效数字
③ double:双精度,精度是float的两倍。通常采用此类型。
④ java的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’

3.字符型:char (1字符=2字节)

① 定义char型变量,通常使用一对’’,内部只能写一个字符

② 表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量

4.布尔型:boolean

① 只能取两个值之一:true 、 false

② 常常在条件判断、循环结构中使用

5.引用数据类型:String

①String属于引用数据类型,翻译为:字符串

②声明String类型变量时,使用一对""

③String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+

④运算的结果仍然是String类型

变量间的运算:
基本数据类型间的运算(7种(不包括boolean));

自动类型提升:小容量和大容量的变量做运算结果为大容量的变量来接收。
byte,short,char->int->long->float->double
注意:
1.容量指的是表数范围
2.byte,short,char三者之间参与运算先将自身提升为int类型。

强制类型转换
自动类型提升的逆过程
强制类型转换需要使用强制类型转换符:(强转的类型)
注意:强制类型转化可能会损失精度

基本数据类型和String间的运算
String和基本数据类型只能做连接运算
String和基本数据类型运算的结果还为String

变量的分类(按声明的位置的不同)

在方法体外,类体内声明的变量称为成员变量。
在方法体内部声明的变量称为局部变量。
在这里插入图片描述注意:二者在初始化值方面的异同:
同:都有生命周期 异:局部变量除形参外,需显式初始化。

进制

所有数字在计算机底层都以二进制形式存在
对于整数,有四种表达方式:
二进制:0,1,满2进1,以0b或0B开头
十进制:0-9,满10进1
八进制:0-7,满8进1,以数字0开头表示
十六进制:0-9及A到F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写。
二进制的整数有三种形式:原码,反码,补码(计算机以二进制补码的形式保存所有的整数)

1、正数的三码合一。
2、负数
原码:该数正数的二进制,最高位为符号位,最高位变成1,0表示正数,1表示负数
反码:在原码的基础上,除符号位外,0变1,1变0
补码:在反码的基础上+1
-128:是从-127减1推来的(10000000)
127:(01111111)

二进制转成十进制 乘以2的幂数
十进制转二进制 除以2的余数
二进制转八进制 3位二进制等于一位8进制
二进制转十六位进制 4位二进制等于一位十六进制

运算符

算数运算符:+(正)-(负) + - * / %(取余、取模) 前++ 后++ 前-- 后-- +(连接符)
取余有负数,结果正负与被模数有关
后++ 即先赋值在+1 ,前++,先自身+1,后赋值
赋值运算符
+= 进行运算的时候不会改变原来的数据类型
逻辑运算符:
&-逻辑与 &&-短路与 |-逻辑或 ||-短路或 !-逻辑非 ^-逻辑异或
1.&和&&:左右两边的值都为true时结果为true
2.|和||:左右两边只要有true结果为true
3.!:取反
4.^:左右两边相同为false,不同为true
特点:
1.逻辑运算符是对布尔类型的数据进行运算
2.逻辑运算符的结果为布尔类型

&和&&的区别?|和||的区别? 左边为true时,&和&&右边的式子都会执行。
左边为false时,&右边的式子仍然会执行,&&右边的式子不执行(可以直接推出结果)
左边为false时,|和||右边的式子都会执行。
左边为true时,|右边的式子仍然会执行,||右边的式子不执行(可以直接推出结果)

位运算符
左移(<<):在一定范围内每向左移一位原来的数乘以2
右移(>>):在一定范围内每向右移一位原来的数除以2,如果是正数向右移最高位用0补,如果是负数最高位用1补
无符号右移(>>>):无论是正数或者负数最高位都用0补 &与运算、 |或运算、^异或运算、~取反运算
三元运算符
格式:(条件表达式)?表达式1:表达式2 说明:
① 条件表达式的结果为Boolean
② 表达式的结果为true时,运算后的结果是表达式1、否则运算后的结果是表达式2
③ 表达式1和表达式2的类型保持一致。(如果可以自动类型提升那么也是可以的)
④ 三元运算符可以嵌套使用,但是不建议
⑤ 可以使用if-else来替换三元运算符,反之不成立。如果两者可以使用建议使用三元运算符,因为效率高一些

if-else语句

三种结构:
第一种

if(条件表达式){
执行语句;
}

第二种

if(条件表达式){
执行语句1;
}else{
执行语句2;
}

第三种:多选一

if(条件表达式1{
执行语句1;
}else if(条件表达式2{
执行语句2;
} else if(条件表达式3{
执行语句3;
}
.......
else{
执行语句n;
}

说明:

1.条件表达式的结果为Boolean
2.if-else if中如果多个表达式的关系互斥关系那么谁在上谁在下都可以。如果多个条件表达式是包含关系那么范围小的在上面,范围大的在下面。
3.if-else结构中else可以省略,但是可能造成没有任何一个条件满足
4.只有一条执行语句时可以省略大括号(注意:就近原则,else离谁最近就和谁事一对)。

如何从键盘中获取不同类型的变量:需要使用Scanner类

Scanner的步骤
1、导包:import java.util.Scanner;
2、创建Scanner的对象:Scanner s = new Scanner(System.in);
3、调用方法:s.nextInt();
判断字符串中的内容是否相同,使用String中的equals方法。
注意: 需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException导致程序终止。

//1.导包:import java.util.Scanner;
import java.util.Scanner;
class ScannerTest{
public static void main(String[] args){
    //2.Scanner的实例化
    Scanner scan = new Scanner(System.in);
    //3.调用Scanner类的相关方法
    System.out.println("请输入你的姓名:");
    String name = scan.next();
    System.out.println(name);

    System.out.println("请输入你的芳龄:");
    int age = scan.nextInt();
    System.out.println(age);

    System.out.println("请输入你的体重:");
    double weight = scan.nextDouble();
    System.out.println(weight);

    System.out.println("你是否相中我了呢?(true/false)");
    boolean isLove = scan.nextBoolean();
    System.out.println(isLove);

    //对于char型的获取,Scanner没有提供相关的方法。只能获取一个字符串
    System.out.println"请输入你的性别:(男/女)");
    String gender = scan.next();
    char genderChar = gender.charAt(0);//获取索引为0位置上的字符
    System.out.println(genderChar);
}
}

Switch-case分支结构

格式

switch(表达式){
case 常量1:
语句1//break
.
.
case 常量n:
语句n;
//break
default:
语句;
//break
}

说明:

① case后面的常量会和表达式进行匹配,如果匹配成功则进入执行相应的执行语句,直到遇到break或则执行到switch-case结构的末尾就会跳出switch-case结构。如果和case后面的常量都没有匹配成功,那么执行default中的执行语句。
② break可以省略。break作用,用来跳出(终止)switch-case结构。
③ 表达式的类型只能是:byte,short,int,char,枚举,String
④ case后面只能是常量
⑤ default的位置是灵活的,当所有case都没有匹配成功时就执行default中的执行语句。
⑥ 使用switch-case的,都可以改写为if-else语句,反之不成立,都可以使用的情况下用switch-case语句效率高一些。

for循环语句

循环四要素:

1.初始化条件
2.循环条件
3.循环体
4.迭代条件

格式:

for(初始化条件;循环条件;迭代条件){
执行语句
}
顺序是for(1;2;4){
3
}

1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环
2. 外层循环:循环结构B 内层循环:循环结构A
格式:

for(初始化条件B;循环条件B;迭代条件B{//B循环体
	for(初始化条件A;循环条件A;迭代条件A{//A循环体
		执行语句
}

3.说明 ①外层循环循环一次,内层循环执行一轮。 ② 假设外层循环需要执行m次,内层循环需要执行n次。此时内层循环的循环体一共执行了m * n次说明:
4.技巧:外层循环控制行数,内层循环控制列数

While加粗样式**ile循环

循环四要素:

1.初始化条件
2.循环条件
3.循环体
4.迭代条件

格式:

初始化条件①
while(循环条件②){
循环体③;
迭代条件④;
}
执行过程:① ------- ... -

说明:
1.for循环和while循环可以相互替换使用。
2.for循环的初始化条件在结构内,while循环的初始化条件在循环体外
3.写while循环千万小心不要丢了迭代条件。一旦丢了,就可能导致死循环!
区别:for循环和while循环的初始化条件部分的作用范围不同。
算法:有限性。

do-while循环语句

格式

①初始化条件;
do{
③循环体部分
④迭代部分
}while(②循环条件部分)
执行过程:①>>>>>>......

说明
1.do-while循环至少执行一次循环体
2.开发中,使用for和while更多一些。较少使用do-while

break和continue

关键字作用范围作用相同点
breakSwitch-case和循环结构1.在循环结构中用来结束当前循环,2.在switch-case中用来跳出switch-case结构。3.在嵌套循环中用来结束包含他的那层循环的当前循环。关键字后面不能声明执行语句
continueSwitch-case1.在循环结构中用来结束当次循环,2.在嵌套循环中用来结束包含他的那层循环的当次。关键字后面不能声明执行语句

结束外层循环:
1.给外层循环起名字 - lable是外层循环的名字,该名字可以随意去写。
2.break后面写需要结束循环的名字。
注意:break和continue的后面不能直接在跟其他执行语句,因为不可能访问的到。
格式

	label1: 	{   ……        
	label2:	         {   ……
	label3:			{   ……
				           break label2;
				           ……
					}
			          }
			 } 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值