Java程序基础

mac2025-07-16  13

标识符、关键字、保留字

规则(强制与非强制) 标识符 : 标识符就是用于给程序中的变量、类、方法命名的符号。标识符可以由编程人员自由定义,但需要遵循一定的命名规则(强制和非强制)。 强制规则: 严格区分大小写 只能是 字母、数字、下划线_、美元符号$ 数字不能开头 不能使用关键字保留字 非强制规则: 驼峰规则。见名知义。 关键字,Java语言中用以特殊用途而预占用的单词或标识符称之为关键字,Java中的关键字均为小写。保留字也是关键字,只是现在未投入使用 关键字 : | package | break | case | continue | do | if | else | for | switch | while | false | true | boolean | byte | char | short | long | float | double | try | throw | throws | finally | abstract | native | pravate | protected | public | super | void | assert | enum |synchronized| transient | volatile | instanceof 除了以上,goto和const为Java语言中的两个保留字。保留字是指预留的还未被使用的关键字,但可能在将来的版本中使用

基本类型

数据类型是为了把数据分成所需内存大小不同的数据,编程的时候需要用大的数据才申请大内存,这样可以充分利用内存。 Java语言是一种强类型语言,要求所有变量先声明后使用。目的就是为了保证变量或者表达式在编译时就能够确定其类型,并为其分配相应的内存。

整型

Java整型 byte/short/int/long 整型取值范围 Java语言整数型默认为int类型,如果要声明成long类型在值后加入L,如:long l = 123L 类型/占用存储空间字节数/数值范围 byte/1/-128~127 short/2/-2的15次方2的15次方-1(-3276832767) int/4/-2的31次方~2的31次方-1 long/8/-2的63次方~2的63次方-1 Java整型常量的三种表示方法 十进制:如123=1100+210+31=123 八进制,八进制0开头:如:013=18+31=11 十六进制,十六进制0x开头:如:0x23=216+3*1=35

【进制转换】

10进制到二进制 示例:求十进制数10的二进制 6/2=3 余 0 3/2=1 余 1 1/2=0 余 1 将余数逆序输出就是6的二进制表示:110,位数不够补零 二进制到十进制 示例:求二进制110的十进制 规则:取出最后一位,从2的0次方开始乘,将得到的结果相加即可 02的0次方=0 12的1次方=2 1*2的2次方=4 110的十进制为:0+2+4=6 八进制与二进制、十进制转换类同

浮点型

Java浮点型 float/double 两种表示形式 十进制形式:例如:123.456 0.314 科学计数法:例如:1.23456E2 3.14E-1 Java浮点型取值范围 浮点声明默认是double类型,若要是float,请在尾部添加f或是F。如:float myFloat=1.23 类型/占用存储空间字节数/数值范围 float/4/-3.4E38 ~ 3.4E38 double/8/-1.7E308~ 1.7E308

布尔型

适用于逻辑运算,用于程序流程控制 只允许取值为true,false,不可以任何其它形式代替 [示例] boolean real=true; //正确 boolean notReal=false; //正确 boolean read2=1; //错误 boolean notReal2=0; //错误

字符型

Java字符型 通常意义上的字符,用单个引号括起来的单个字符 如’1’,‘a’,‘b’等等 Java采用Unicode编码(即为全球统一语言编码),均可以用十六进制表示编码值 char c = ‘\u0012’; 转义字符,用’\n’来表示,即为转变之前的意义,但依然是个字符 char c=’\n’; //表示换行符

基本类型转换

布尔类型不能与其它类型做任何转换 数值型、字符型可以相互转换,规则如下: 容量小的自动转换成表示范围容量大的,但byte,short,char不能相互转换,均转化成int做计算,当然byte b = 1;short s = b; 这样转换不会报错,因为会先转为int 默认转换为short, byte b = 1; 这和时候1其实是int的字面量,只不过这样可以直接转为byte和short,但是不能把int变量直接赋值给byte和short 容量大小排序为:byte,char,short<int<long<float<double 容量大转换为容量小的,要加强制转换符,此时容易丢失精度 多类型混合运算时,系统会自动转换成统一类型(大容量数据)后再进行计算,即先类型转换后计算

变量、常量

变量分类(按作用范围) 数据类型、变量名、值、作用范围(作用域)。 按作用范围,变量分为 局部变量,实例变量(又叫属性、字段、域),类变量(又叫静态变量)。 常量,分为 字面量(又叫直接量)。像1、”1”这样的。 和 final修饰的”变量”。

运算符

释义 用于表示数据的运算、赋值和比较的一系列符号我们称之为运算符。 分类 运算符按功能划分如下: 运算符类型 运算符 算术运算符 +,-,*,/,++,–,% 关系运算符 <,<=,>,>=,==,!= 布尔运算符 &&, ||,&,|,!,^ 位运算符 &,|, ~,^,>>,>>>,<< 赋值类运算符 =, +=, -=, *=, /=, %= 字符串连接运算符 + 条件运算符(三目运算符) ? : 其他运算符 instanceof,new

1.1算术运算符 类型 描述 示例 ++(自加运算符) ++在变量前面时,先做运算后赋值 ++在变量后面时,先做赋值后运算 i = 1, j; j = ++i; 则j=2; i = 1, j; j = i++; 则 j = 1 –(自减运算符) 同上 i = 1, j; j = - -i; 则 j = 0; i = 1, j; j = i- -; 则 j = 1;

1.2关系运算符 注意 ‘==’关系运算,其意义为全等,基本数据类型比较值,引用数据类型比较地址

1.3逻辑运算符 与 &:两个操作数相与,如果都为true,则为true 或 |:两个操作数相或,有一个为true,则为true 异或 ^:相异为true,两个操作数不一样就为true,相同为false

短路&& 和 逻辑& 区别? 1.短路与,从第一个操作数推断结果,只要有一个为fase,不再计算第二个操作数 2.逻辑与,两个操作数都计算

短路|| 和 逻辑| 区别? 1.短路或,从第一个操作数推断结果,只要有一个为true,不再计算第二个操作数 2.逻辑或,两个操作数都计算

1.4赋值运算符 注意 1)当 “=” 两侧数据类型不一致时,适用默认转换或强制转换处理,如long num=20;int i=(int)num; 2)特殊情况为:当byte,char,short被整赋值时,不需要进行强制类型转换,不超过取值范围即可。即一个自动装载的过程。 char c=100;byte b=20; //正确 char c2=-99999;byte b2=128; //类型越界错误

运算符 用法 c += a+=b a=a+b -= a-=b a=a-b = a=b a=a*b /= a/=b a=a/b %= a%=b a=a%b

1.5字符串连接运算符 “+” 可用于数值计算,当有一方是字符时,则为将左右两个数据转化成字符串连在一起。如int i=10+20;String j=“10”+“20”。 当" +" 任意一侧为字符串时,系统将自动将两侧转化成字符串,做字符串链接操作。 当进行System.out.println(var)打印操作的时候,均自动转化为字符串进行输出。

1.6运算优先级 优先级 运算符分类 结合顺序 运算符 由高到低 分隔符 左结合 . [] ( ) ; , 一元运算符 右结合 ! ++ – - ~ 算术运算符 移位运算符 左结合 * / % + - << >> 关系运算符 左结合 < > <= >= instanceof == != 逻辑运算符 左结合 ! && || ~ & | ^ 三目运算符 右结合 布尔表达式?表达式1:表达式2 赋值运算符 右结合 = *= /= %= += -= <<= >>= >>= &= *= |=

【问】:做一道综合性强点的练习题,感受感受运算符优先级怎么样? int a = 5; int b = 4; int c = a++ - --b * ++a / b-- >> 2 % a–; c的值是多少?

表达式

表达式是指由(常量、变量、操作数)与运算符所组合而成的语句。 符合语法规则的运算符+操作数,即为表达式,如:5+3,2.0+3.0,a+b,3%2 表达式最终运行结果即为表达式的值,值的类型就是表达式的类型 运算符优先级,决定表达式的运算顺序 三目运算符: 形如:x?y:z 释义:计算x的值,若为true,则表达式的值为y;若为false,则表达式的值为z 示例: int score=70; String result=score<60 ? “不及格” : “及格”; System.out.println(result); //输出结果为及格

最新回复(0)