知识点:
熟记 JAVA 语法基础 ;
标识符 关键字 8 大基本类型 基本类型的字面值 基本类型转化
一、Java语法基础
1.1标识符
标识符可以简单的理解成一个名字。在 Java 中,我们需要标识代码的很多元素,包括类名、方法、字段、变 量、包名等等。我们选择的那个名称就称为标识符,一个正确的标识符需要遵循以下规则:
1) 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符
2) 不能以数字开头。如:123name 就是不合法
3) 标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符
4) 标识符的命名最好能反映出其作用,做到见名知意。
5) 标识符不能是 Java 的关键字
1.2关键字
在 Java 中,有一些单词被赋予了特定的意义,一共有 53 个关键字。这 53 个单词都是全小写.
其中有两个保留字:const 和 goto。注意,关键字不能被用作标识符!!
1.3注释
几乎所有编程语言都允许程序员在代码中输入注释,因为编译器会忽略注释,所以注释并不会影响程序的运行结果。 注释的真正作用是: 它可以向任何阅读代码的人描述或者解释程序的实现思路,如何使用以及其它任何相关信息, 提高代码的可读性,方便后期的维护与复用。
Java 的注释有 3 种:
1) 单行注释: 注释单行内容.格式: 每行都以” // ” 开头.快捷方式: Ctrl+/ 添加注释,同样的快捷键,再按一次取消注释2) 多行注释:注释多行内容,虽然叫多行注释,也可注释单行内容.格式: 以” /* ”开头, 以” */ ”结束.快捷方式: Ctrl+shift+/ 添加注释, Ctrl+shift+\ 取消注释, 输入” /* ”之后按回车添加注释3) 文档注释: 一般用来注释类和方法 ,通过注释内容来记录类或者方法的信息.格式: 以” /** ”开头。 以” */ ”结尾.快捷方式: 输入“ /** ” 之后按回车添加注释
1.4变量
在 JAVA 中,我们需要记录一些数据,但这些数据的值是不固定的,总在变,我们可以把这些数据理解为变量。 我们通过三个元素来描述变量:变量类型 变量名以及变量值。
int age = 18; //声明 int 类型的变量并赋值String tel ; //声明 String 类型的变量
注意:
1、变量名必须是一个有效的标识符
2、变量名不可以使用 java 关键字
3、变量名不能重复
1.5常量
在程序运行过程中,值一致不会改变的量成为常量。
二、数据类型
2.1基本数据类型
变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。
内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。
2.1.1练习1:输入个人信息
创建 Java 工程: DAY02
创建包: cn.tedu.basic
创建类: Test1_Info.java
需求: 在控制台打印:
java 工程师今年 28 岁,月薪 100000.88, java 是挺好的
package cn.mbh.basic;
/**本类用于测试在控制台打印个人信息*/
public class Test_Info {
public static void main(String[] args) {
//定义变量的规则: 数据类型 数据名 数据值
//String类型不属于八大基本类型,它可以保存一串值
String name = "Java工程师";
int age = 28;
double salary = 100000.88;
//通过+动态拼接字符串
System.out.println("我是"+name);
//如果是在中间拼接用 ""+变量+"" 的格式
System.out.println(name+"今年"+age+"岁,月薪"+salary+",java是挺好的");
}
}
2.1.2练习2:查看基本类型的最大值与最小值
创建类: Test2_TypeScope.java
package cn.tedu.basic;
/**本类用于查看基本类型的最大值与最小值 Ctrl+Alt+向下键 快速向下复制一行
* @author XYCheng
* @vaesrion 创建时间:2020年12月3日 下午9:01:49
*/
public class Test2_TypeScope {
//必须要写入口函数,否则代码无法执行,因为没有入口
public static void main(String[] args) {
//进行整形类型的测试 byte short int long
//定义变量的规则:数据类型 变量名 变量值;
//定义变量.分别保存最大值与最小值
//JAVA提供了对应基本类型的工具箱
byte byteMax = Byte.MAX_VALUE;//127
byte byteMin = Byte.MIN_VALUE;//-128
System.out.println("byte类型的最大值是:"+byteMax);
System.out.println("byte类型的最小值是:"+byteMin);
short shortMax = Short.MAX_VALUE;//32767
short shortMin = Short.MIN_VALUE;//-32768
System.out.println("short类型的最大值是:"+shortMax);
System.out.println("short类型的最小值是:"+shortMin);
int intMax = Integer.MAX_VALUE;//2147483647
int intMin = Integer.MIN_VALUE;//-2147483648
System.out.println("int类型的最大值是:"+intMax);
System.out.println("int类型的最小值是:"+intMin);
long longMax = Long.MAX_VALUE;//9223372036854775807
long longMin = Long.MIN_VALUE;//-9223372036854775808
System.out.println("long类型的最大值是:"+longMax);
System.out.println("long类型的最小值是:"+longMin);
//浮点型测试 float double
///1.4E-45(1.4乘以10的负45次方)
float floatMax = Float.MAX_VALUE;//3.4028235E38
float floatMin = Float.MIN_VALUE;//1.4E-45
System.out.println("float类型的最大值是:"+floatMax);
System.out.println("float类型的最小值是:"+floatMin);
double doubleMax = Double.MAX_VALUE;//1.7976931348623157E308
double doubleMin = Double.MIN_VALUE;//4.9E-324
System.out.println("double类型的最大值是:"+doubleMax);
System.out.println("double类型的最小值是:"+doubleMin);
//布尔型boolean true真 false假
boolean b1 = true;
boolean b2 = false;
//字符型char
char c1 = 'a';//可以保存一个字符
char c2 = 128;//可以保存一个数字
char c3 = '中';//可以保存一个汉字
System.out.println(c1);//a
//char类型可以存数字,但是在打印时,会去查ASCII码表,把数字对应的字符拿出来使用
//ASCII码表里只规定了数字0-127对应的字符,128-65535默认按照字符?来处理
System.out.println(c2);//a
System.out.println(c3);//中
}
}
2.1.3练习3:求圆形的面积
需求:求出指定半径圆的面积
公式:圆的面积:π*r*r
创建类: Test3_CircleArea.java
package cn.mbh.basic;
import java.util.Scanner;
/**求出指定半径圆的面积*/
public class Test3_CircleArea {
public static void main(String[] args) {
//公式:圆的面积:π*r*r
//1.固定半径值
double r = 5.5;//半径r值是写死的,直接求值
System.out.println("当半径为"+r+"时,圆的面积为:"+(3.14*r*r));
//2.半径值变化,动态接收用户输入的值
//1)提示用户输入半径的值
System.out.println("请输入你的半径值:");
//2)接收用户输入的半径值
double r1 = new Scanner(System.in).nextDouble();
//3)根据半径值计算圆的面积
double circleArea = 3.14*r1*r1;
//4)讲结果打印到控制台
System.out.println("当半径为"+r+"时,圆的面积为:"+circleArea);
}
}
2.1.4练习4:变量交换
需求: 接收用户输入的两个值:假设 a=1,b=2,并将这两个变量的值进行互换
创建类: Test4_ValueExchage.java
package cn.mbh.basic;
import java.util.Scanner;
/**接收用户输入的两个值:假设a=1,b=2,并将这两个变量的值进行互换*/
public class Test4_ValueExchage {
public static void main(String[] args) {
//1.提示并接收用户输入的两个值
System.out.println("请输入a的值:");
int a = new Scanner(System.in).nextInt();
System.out.println("请输入b的值:");
int b = new Scanner(System.in).nextInt();
//2.交换a b 两个值
int t;//定义用于值交换的第三变量 t
t = a;//把a的值交给t来保存
a = b;//把b的值交给a来保存
b = t;//把t的值交给b来保存
//3.把交换后的两个值打印在控制台
System.out.println("交换后,a的值是:"+a);
System.out.println("交换后,b的值是:"+b);
}
}
2.2 引用类型
.......
三、基本类型的字面值
3.1整数字面值是int类型
int x = 99999;//对,右面数据的字面值是 int 类型int x = 99999999999;//错,右面数据的字面值是 int 类型,但是已经超出 int 的取值范围。
3.2byte,short,char 三种比 int 小的整数可以用范围内的值直接赋值
byte b1=127;//对,byte b2=128;//错,超出 byte 范围
3.3浮点数的字面值是 double 类型
double r =3.14;//对float r =3.14;//错,右面的数据字面值是 double,float 是 4 字节存不下 double 类型的数据
3.4字面值后缀 L D F
long x =99999999999L;// 99999999999 字面值是 int 类型,需转成 long 类型的数据,加字面值后缀 L 即可float b = 3.0F;//3.0 字面值是 double 类型,加后缀 F 会变成 float 类型double d = 3D;//3 字面值是 int 类型,加后缀 D,会变成 double 类型
3.5进制前缀
0b - 标识这是 2 进制 ,如:0b0101
0 - 标识这是 8 进制, 8 进制是三位,如: 0230x - 标识这是 16 进制,如: 0x0001\u -标识这是 char 类型,属于 16 进制,默认值是\u0000
四、基本类型的类型转换
4.1 小到大/隐式转换
// 小转大 / 隐式转换byte m = 10;long n = m;// 小转大,右面的 m 是小类型,给左面的 n 大类型赋值,可以直接使用
4.2 大到小/显示转换
需要强制类型转换
// 大转小 / 显示转换float x = 9.9F;// 大转小,右面 x 是大类型,给左面 y 小类型赋值,不可以直接赋值。需要添加强转的代码(小类型)int y = (int)x ;
数据类型转换的一些规则:
1.小的类型能够自动转化为大的类型
例如:byte b = 120; int i = b; -->可以执行
float f = 3.2f; double d = f; -->可以执行
2.容量大的类型转换为容量小的类型时必须使用强制类型转换。
1) 转换过程中可能导致溢出或损失精度
例如:int i =128; byte b = (byte)i; //打印的结果是-128
因为 byte 类型是 8 位,最大值为 127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
2) 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
例如:float f = 32.7f; int a2 =(int) f; //打印的结果是 32
3) 不能对 boolean 类型进行类型转换。
4.3 记忆口诀:
五、拓展补充:
5.1 关键字作用一览表
用于定义数据类型的关键字 | |||||
class | interface | byte | short | int | long |
float | double | char | boolean | void | enum |
用于定义数据类型值的关键字 | |||||
true
| false | null | |||
用于定义流程控制的关键字 | |||||
if
| else | switch | case | default | while |
do | for | break | continue | return | |
用于定义访问权限修饰符的关键字 | |||||
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 |
5.2 标识符命名风格
1) 【强制】标识符命名均不能以数字开头,而且下划线或美元符号开始,也不能以下划线或美元符号结束
错误案例:1name/_name / name_ / $name / name $
2) 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。
注意,即使纯拼音命名方式也要避免采用。
正确案例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
错误案例:DaZheModule [打折模块] / getPingfenByName() [评分]
3) 【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO /
PO / UID 等。
正确案例:MarcoPolo / UserDO / XmlService / TcpUdpDemo
错误案例:macroPolo / UserDo / XMLService / TCPUDPDeal
5.3 ASCII 编码表
ASCII
(American Standard Code for Information Interchange)编码表,美国标准信息交换代码。
在计算机中,所有的数据在存储和运算时都要使用二进制数表示。
a、b、c、d 这样的 52 个字母(包括大写)、以及 0、1 等数字还有一些常用的符号, 在计算机中存储时也要使用二 进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家 如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则。 于是美国有关的标准化组织就出台了 ASCII 编码,统一规定了上述常用符号用哪些二进制数来表示。
中国
gb2312
【字少】
gbk
【识别
4
万
+
汉字】
万国码表
unicode
【
ISO
制定】
所有码表都兼容
ASCALL
附
:ASCII
码表
5.4 补充-eclipse 中新建类添加作者与时间信息
在企业级产品开发中, 对注释的要求取决于项目的规模和团队的正规化程度。 对于一个专业的软件开发人员来说, 对 javadoc 的使用程序有时候直接决定这在项目中 的角色, 也会影响面试的结果和薪水的水平, 因为它能够反映开发人员参与过项目的 规模, 以及之前躲在团队的专业化程度。 所以对注释的重视也是一个专业团队必不可少的一部分。
补充:
eclipse 中设置作者等信息
点击 Windows->Preferences->Java->Code Style->Code Templates, 再点击展开右侧的
Code 选项卡, 选择“New Java files” , 点击最右侧的 Edit 按钮进行编辑:
编辑页面如下所示, 我们就可以添加内容了, 此处添加了作者和时间: