Java基础班学习笔记(2)

知识要点:

关键字     标识符    注释     常量、进制和进制转换    变量    数据类型和类型转换    运算符     语句

1:关键字(掌握)

(1)被Java语言赋予特定含义的单词

(2)特点:

全部小写。

(3)注意事项:

A:goto和const作为保留字存在。

B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记


用于定义访问权限修饰符的关键字


private


protected


public


 

 

用于定义类,函数,变量修饰符的关键字


abstract


final


static


synchronized


 

用于定义类与类之间关系的关键字


extends


implements


 

 

 

用于定义建立实例及引用实例,判断实例的关键字


new


this


super


instanceof


 

用于异常处理的关键字


try


catch


finally


throw


throws


用于包的关键字


package


import


 

 

 

其他修饰符关键字


native


strictfp


transient


volatile


assert

2:标识符(掌握)

(1)就是给类,接口,方法,变量等起名字的字符序列

(2)组成规则:

A:英文大小写字母

B:数字

C:$和_

(3)注意事项:

A:不能以数字开头

B:不能是java中的关键字

C:区分大小写

(4)常见的命名规则(见名知意)

A: 包 全部小写

单级包:小写

举例:liuyi,com

多级包:小写,并用.隔开

举例:cn.itcast,com.baidu

B: 类或者接口

一个单词:首字母大写

举例:Student,Demo

多个单词:每个单词首字母大写

举例:HelloWorld,StudentName

C:方法或者变量

一个单词:首字母小写

举例:name,main

多个单词:从第二个单词开始,每个单词首字母大写

举例:studentAge,showAllNames()

D:常量

全部大写

一个单词:大写

举例:PI

多个单词:大写,并用_隔开

举例:STUDENT_MAX_AGE

3:注释(掌握)

(1)就是对程序进行解释说明的文字

(2)分类:

A:单行注释 //

B:多行注释 /**/

C:文档注释(后面讲) /** */

(3)把HelloWorld案例写了一个带注释的版本。

后面我们要写一个程序的过程。

需求:

分析:

实现:

代码体现:

(4)注释的作用

A:解释说明程序,提高了代码的阅读性。

B:可以帮助我们调试程序。

后面我们会讲解一个更高端的一个调试工具

4:常量(掌握)

(1)在程序执行的过程中,其值不发生改变的量

(2)分类:

A:字面值常量

B:自定义常量(后面讲)

(3)字面值常量

A:字符串常量 "hello"

B:整数常量 12,23

C:小数常量 12.345

D:字符常量 ‘a‘,‘A‘,‘0‘

E:布尔常量 true,false

F:空常量 null(后面讲)

(4)在Java中针对整数常量提供了四种表现形式

A:二进制 由0,1组成。以0b开头。

B:八进制 由0,1,...7组成。以0开头。

C:十进制 由0,1,...9组成。整数默认是十进制。

D:十六进制 由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。

进制概述以及二进制,八进制,十六进制图解

5:进制转换(了解)

(1)其他进制到十进制

系数:就是每一个位上的数值

基数:x进制的基数就是x

权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。

结果:系数*基数^权次幂之和。

(2)十进制到其他进制

除基取余,直到商为0,余数反转。

(3)进制转换的快速转换法

A:十进制和二进制间的转换

8421码。

B:二进制到八进制,十六进制的转换

二进制到八进制       3位组合

100110

二进制到十六进制    4位组合

100110

任意进制到十进制的转换

十进制到任意进制的转换

快速的进制转换法

. 原码反码

在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。

原码 :

就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码 :

正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码 :

正数的补码与其原码相同;负数的补码是在其反码的末位

原码反码补码的讲解

6:变量(掌握)

(1)在程序的执行过程中,其值在某个范围内可以发生改变的量

(2)变量的定义格式:

A:数据类型 变量名 = 初始化值;

B:数据类型 变量名;

变量名 = 初始化值;

7:数据类型(掌握)

(1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。

(2)分类:

A:基本数据类型:4类8种

B:引用数据类型:类,接口,数组。

(3)基本数据类型

A:整数 占用字节数

byte      1

short     2

int         4

long      8

B:浮点数

float      4

double   8

C:字符

char       2

D:布尔

boolean 1

  注意:

整数默认是int类型,浮点数默认是double。

长整数要加L或者l。

单精度的浮点数要加F或者f。

8:数据类型转换(掌握)

(1)boolean类型不参与转换

(2)默认转换

A:从小到大

B:byte,short,char -- int -- long -- float -- double

C:byte,short,char之间不相互转换,直接转成int类型参与运算。

(3)强制转换

A:从大到小

B:可能会有精度的损失,一般不建议这样使用。

C:格式:

目标数据类型 变量名 = (目标数据类型) (被转换的数据);

 (4)思考题和面试题:#面试#

A:下面两种方式有区别吗?

float f1 = 12.345f;

float f2 = (float)12.345;

B:下面的程序有问题吗,如果有,在哪里呢?

byte b1 = 3;

byte b2 = 4;

byte b3 = b1 + b2;    //有,因为变量相加会先看类型问题,这个是类型提升,所以有问题(byte相加

会类型提升--int,int赋值 给byte而没有经过强转, 所以编译会报错)

byte b4 = 3 + 4;        //没有,常量,先计算出来,看结果是否超过byte范围,如果不超过就不报错

在定义Long或者Float类型变量的时候,要加L或者f。

    整数默认是int类型,浮点数默认是double。

    byte,short在定义的时候,他们接收的其实是一个int类型的值。

    这个是自己做了一个数据检测的,如果不再它们的范围内,就报错。

C:下面的操作结果是什么呢?

byte b = (byte)130;    //-126(详解见下)

 D:字符参与运算

是查找ASCII里面的值

‘a‘ 97

‘A‘ 65

‘0‘ 48

System.out.println(‘a‘);    //结果:a

System.out.println(‘a‘ + 1);    //结果:98

 E:字符串参与运算

这里其实是字符串的连接

System.out.println("hello"+‘a‘+1);    //helloa1

System.out.println(‘a‘+1+"hello");    //98hello

System.out.println("5+5="+5+5);    //5+5=55

System.out.println(5+5+"=5+5");    //10=5+5


思考题:在java中为什么  int的范围是-2^31到2^31-1

弄清楚为什么java中Byte类型的取值范围是-128~127 ?也就明白上面的问题了:

    Byte占一个字节8位,首位是符号位,最大值为0111 1111即127,关键是这个-128,有人说首位是符号位,那就是剩余的7位表示真值,最大为111 1111,最小为000 0000,那最小即为1000 0000,就是-128,(关键是不是说好首位是符号位了么?怎么负数算真值得时候又把首位1给算进去了?)

(负数)最大 1111 1111 代表的是-1 最小1000 0000 代表的是 -128 这个很难理解嘛?

1111 1111、1000 0000代表的是-1,-128的补码,在内存中,存放的都是补码,不是涉及到负数,负数所谓的补码就是他们绝对值的原码的取反加+1

比如 -1的绝对值是1 1的原码是0000 0001 反码是 1111 1110

反码+1 也就是补码就是 1111 1111

-128的绝对值是 128  原码是 1000 0000 反码是 0111 1111

反码+1 也就是 1000 0000

(补充:)


①在内存中,存放的都是补码,不是涉及到负数,都用补码,正数、负数在内存中都是补码形式表示,只不过正数的补码与其原码相同,而负数的补码是其绝对值的原码的反码+1

128:10000000

-128:10000000 (这里的1即是符号位,也是数值位)


/*

 byte b = 130;有没有问题?如果我想让赋值正确,

  可以怎么做?结果是多少呢?

练习:byte b = (byte)300;

*/

class DataTypeDemo7 {

public static void main(String[] args) {

//因为byte的范围是:-128到127。

//而130不在此范围内,所以报错。

//byte b = 130;

//我们可以使用强制类型转换

byte b = (byte) 130;

//结果是多少呢?

System.out.println(b);

}

}

/*

分析过程:

我们要想知道结果是什么,就应该知道是如何进行计算的。

而我们又知道计算机中数据的运算都是补码进行的。

而要得到补码,首先要计算出数据的二进制。

A:获取130这个数据的二进制。

00000000 00000000 00000000 10000010

这是130的原码,也是反码,还是补码。

B:做截取操作,截成byte类型的了。

10000010

这个结果是补码。

C:已知补码求原码。

符号位 数值位

补码: 1 0000010

反码: 1 0000001

原码: 1 1111110 = -126

*/

附录:

运算符的优先级(从高到低)


优先级


描述


运算符


1


括号


()、[]


2


正负号


+、-


3


自增自减,非


++、--、!


4


乘除,取余


*、/、%


5


加减


+、-


6


移位运算


<<、>>、>>>


7


大小关系


>、>=、<、<=


8


相等关系


==、!=


9


按位与


&


10


按位异或


^


11


按位或


|


12


逻辑与


&&


13


逻辑或


||


14


条件运算


?:


15


赋值运算


=、+=、-=、*=、/=、%=


16


位赋值运算


&=、|=、<<=、>>=、>>>=

时间: 2024-11-05 18:32:56

Java基础班学习笔记(2)的相关文章

Java基础班学习笔记(4)

1:switch语句(掌握) (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 格式解释说明: switch:说明这是switch语句. 表达式:可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case:后面的值就是要和表达式进行比较的值 break:表示程序到这里中断,跳出switch语句 default:如

Java基础班学习笔记(10)

知识要点: 运动员和教练案例分析 1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的是该类的子类对象 接口名:返回的是该接口的实现类的对象 (3)链式编程 对象.方法1().方法2().......方法n(); 这种用法:其实在方法1()调用完毕后,返回的应该是一个对象: 方法2()调用完毕后,应该返回一个对象. 方法n()调用完毕后,可能是对象,

Java基础班学习笔记(8)

1:如何制作帮助文档(了解) (1)写一个类 (2)加入文档注释 (3)通过javadoc工具生成即可 javadoc -d 目录 -author -version ArrayTool.java 如何使用帮助文档 1:打开帮助文档 2:点击显示,找到索引,看到输入框 3:知道你要找谁?以Scanner举例 4:在输入框里面输入Scanner,然后回车 5:看包 java.lang包下的类不需要导入,其他的全部需要导入. 要导入: java.util.Scanner 6:再简单的看看类的解释和说明

Java基础班学习笔记(1)

1. 常见的DOS命令(掌握) d:    回车 盘符切换 dir(directory):    列出当前目录下的文件以及文件夹 md (make directory) :    创建目录 rd (remove directory):    删除目录 cd (change directory)    改变指定目录(进入指定目录) cd.. :     退回到上一级目录 cd\:     退回到根目录 del (delete):     删除文件,删除一堆后缀名一样的文件*.txt exit :

Java基础班学习笔记(11)API常用类(二)

1:StringBuffer(掌握) (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了 一个字符串缓冲区类.StringBuffer供我们使用. (2)StringBuffer的构造方法 A:StringBuffer() B:StringBuffer(int size) C:StringBuffer(String str) (3)StringBuffer的常见功能(自己补齐方法的声明和方法的解释) A:添加功能 public Strin

Java基础班学习笔记(5)

1:方法(掌握) (1)方法:就是完成特定功能的代码块. 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法. (2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法体语句; return 返回值; } 修饰符:目前就用 public static.后面再详细讲解其他修饰符 返回值类型:就是功能结果的数据类型 方法名:就是起了一个名字,方便我们调用该方法. 参数类型:就是参数的数据类型 参数名:就是变量 参数分类: 实参:实际参与运算的数

Java基础班学习笔记(3)

知识要点:运算符(掌握)    键盘录入(掌握)    流程控制语句    if语句(掌握)  1:运算符(掌握) (1)算术运算符 A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区别 数据做除法操作的时候,/取得是商,%取得是余数 D:++和--的用法 a:他们的作用是自增或者自减 b:使用 **单独使用 放在操作数据的前面和后面效果一样. a++或者++a效果一样. **参与操作使用 放在操作数的前面:先自增或者自减,再参与操作 int

Java基础班学习笔记(6)

1:二维数组(理解) (1)元素是一维数组的数组. (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}}; D:数据类型[][] 数组名 = {{...},{...},{...}}; 注意下面定义的区别:     int[] x,y[]; 等价于     int[] x; int[] y[]; (3)案例(掌握

Java基础班学习笔记(7)

1:成员变量和局部变量的区别(理解) (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 (4)初始化值不同 成员变量:有默认值 局部变量:没有默认值,必须定义,赋值,然后才能使用  注意事项: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则. 2: