作者 :余小小

日期:2022年8月30日

重点知识

  • 标识符(重点)

  • 关键字(重点)

  • 修饰符(重点)

  • 数据类型(重点)

  • 数据类型的转换(难点)

  • 变量的定义和修改(难点)

注意事项

  • 大小写区分敏感

  • 标识符需要注意:非数字开头,由可以字母和下划线组成

  • 方法名应该遵守小驼峰命名法则,类名应该遵守大驼峰法则。

  • 源文件名字应该和类名一样

  • 禁止使用中文作为任何标识符

  • 小驼峰:第一个单词的首字母小写,后面的单词的首字母全部大写。例如:helloWord

  • 大驼峰:每一个单词的首字母都大写,例如:HelloWorld,需要注意的是在前端的JS中构造函数用的是大驼峰式写法。

开发规范

  1. 变量、成员、方法名统一采用小驼峰命名,做到见名字知其义,比如:userName,passWorld

  2. 类名的定义:普通类名采用大驼峰,抽象类采用Abstract或Base开头。例如普通类:User,HelloWorld,例如抽象类:AbstractUser,AbstractLove

  3. 包名、异常、方法名称的定义:包名一律采用全小写,异常都采用_Exception结尾; 方法名称需要根据方法功能采用如插入insert-User。

注释

注释是对代码的解释和说明文字,可以提高程序的可读性,Java中的注释分为三种:

  1. 单行注释。常用于变量

    //这里是一个注释
  2. 多行注释:常用于表示更多的步骤

    /* 这里是一个注释 */
  3. 文档注释:常用在类上或者方法上

    /** 这里是一个注释*/

image-20220828153443022

关于文档注释,我们可以在eclipse中可以直观的查看到javadoc的相关显示。比如我这里的文档注释是在一个类上

/**
* 判断学生是不是成年人
*
* @author 余小小
* @date 2022年8月30日
* @package
*/
public class Demo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = scanner.nextInt();
if (age>=18) {
System.out.println("成年人了哦");
}
// 写法二 不用花括号
if (age<18)
System.out.println("不是成年人");
}
}

image-20220831090523878

如果你的eclipse窗口中没有javadoc窗口,可以按照我给的方式来进行查看:

image-20220831090820249

标识符

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始

  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合

  • 关键字不能用作标识符

  • 标识符是大小写敏感的

  • 合法标识符举例:age、$salary、_value、__1_value

  • 非法标识符举例:123abc、-salary

关键字

  • 关键字是指被java语言赋予了特殊含义的单词。

  • 关键字的字母全部小写。

修饰符

访问控制修饰符(权限修饰符) :

  1. default(默认)

  2. public (公共)

  3. protected(保护)

  4. private(私有)

非访问控制修饰符 :

  • final(最终)

  • abstract(抽象)

  • static(静态)

  • synchronized(同步)

认识常量和变量

  • 常量:在程序运行过程中,其值不可以发生改变的量。

  • 变量:在程序运行过程中,其值可以发生改变的量。

常量一般用全大写字母

变量是内存中的一小块区域,其值可以在一定范围内变化。

image-20220828154907713

计算机的存储单元

计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母”b”表示。而计算机中最基本的存储单元叫“字节(byte)”,通常用大写字母”B”表示,字节是由连续的8个位组成。

其换算单位如下:

  • 1B(字节) = 8bit (位)

  • 1KB = 1024B

  • 1MB = 1024KB

  • 1GB = 1024MB

  • 1TB = 1024GB

数据类型分类

Java是一个强类型语言,Java中的数据必须明确数据类型。

  • 基本数据类型:基本数据类型也叫做内置数据类型,是Java创建的时候就已经存在JDK中,并且一定固定好了的内存空间大小,方便程序员直接调用。

  • 引用数据类型:在Java中,引用类型的变量非常类似于C/C++的指针。通过使用引用来明确指向内存地址,从而方便程序员操作引用数据。

基本数据类型

数据类型 关键字 内存占用 取值范围
整数类型 byte 1 -128~127
  short 2 -32768~32767
  int(默认) 4 -2的31次方到2的31次方-1
  long 8 -2的63次方到2的63次方-1
浮点类型 float 4 负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38
  double(默认) 8 负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308
字符类型 char 2 0-65535
布尔类型 boolean 1 true,false

说明:

  • e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。

  • 在java中整数默认是int类型,浮点数默认是double类型。

代码实操,定义不同的数据类型的变量

byte b = 1;
short s = 2;
int i = 3;
long l = 4L;
​
float f = 1.1f;
double d = 1.22;
​
char c = 98;
boolean bl = true;
​
String str = "yxqz";
​
System.out.println("byte类型" + b);
System.out.println("short类型" + s);
System.out.println("int类型" + i);
System.out.println("long类型" + l);
System.out.println("float类型" + f);
System.out.println("double类型" + d);
System.out.println("boolean类型" + bl);
System.out.println("char类型" + c);
System.out.println("String类型" + str);

引用数据类型

  • String

  • enum(枚举)

  • 对象(class)

不同类型的占用空间(扩展)

关于各种基本数据类型占用的空间的大小,可以使用包装类和SIZE关键字来进行计算获得

包装类在后面的章节中详细介绍

// SIZE默认单位是位 Boolean并没有Size方法,字符串使用其他工具类进行
System.out.println(Byte.SIZE/8);
System.out.println(Character.SIZE/8);
System.out.println(Integer.SIZE/8);
System.out.println(Short.SIZE/8);
System.out.println(Long.SIZE/8);
System.out.println(Float.SIZE/8);
System.out.println(Double.SIZE/8);

System.out.println("------------分割线----------------");

/**String的存储方式很动态
* 一个英文字符占1个字节,而中文字符根据编码的不同所占字节数也不同。
* 在UTF-8编码下,一个中文字符占3个字节;
* 而使用GBK编码时一个中文字符占2个字节。
*/
String str1 = "yxqz";
String str2 = "鱼香茄子";
System.out.println(str1.getBytes("utf-8").length);
System.out.println(str1.getBytes("gbk").length);

System.out.println(str2.getBytes("utf-8").length);
System.out.println(str2.getBytes("gbk").length);

变量的定义

声明并定义一个变量

格式:

数据类型 变量名 = 数据值;
  • 数据类型:为空间中存储的数据加入类型限制,基本类型或者引用类型

  • 变量名:变量的名字,标识符

  • 数据值:相对应的数据类型的值

int age = 18;// 声明变量并赋值
System.out.println(age);

先声明后定义变量

格式:

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

在Java中默认的变量是有相对应的数据类型的初始值的。但是在变量中,是必须要自己先赋值之后才可以操作。

double money;
money = 99.8;
System.out.println(money);

比如在没有赋值的情况下直接使用变量money

image-20220828161001844

修改这个错误:使用变量的修改操作

double money=0;
System.out.println(money);
money = 99.8;
System.out.println(money);

变量的修改

修改变量则是对变量的初始值或者之前的值进行再次赋值操作

int age = 18;
age = 19; //修改变量的值
System.out.println(age);

变量的注意事项

  1. 在同一对花括号中,变量名不能重复。

  2. 变量在使用之前,必须初始化(赋值)。

  3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。

  4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。

数据类型的转换

在java的基本数据类型中,默认的整数类型是int,默认的小数类型是double

数据类型在内存中,可以看成一个容器,比如杯子,水桶,池子。这些容器都是用来装水(数据)的。

那么,将小的容器中的数据,放入大的容器中,也是可以存储的。但是,将大的容器中的数据,放入小的容器中,则会出现数据溢出的问题。

在Java中,针对数据类型转换分为两种情况:

  1. 自动类型转换(隐式转换)

  2. 强制类型转换(显示转换)

自动转换

对象一般是基本数据类型

自动类型转换,是JDK根据数据类型来自动转换。一般是基本的数据类型才会自动转化。并且,是由小范围到大范围进行转换,将小范围的容器放在大范围的容器里,依旧是可以容纳相关的数据。

由于char数据类型比较特殊,字符可以按照ascll表格进行自动转换。这种转换方式可以将char字符和数值1对1的对应。

相关字节范围如下,具体取值范围只需要知道byte是在-128到127即可

  • byte:1(字节)

  • short:2(字节)

  • int:4(字节)

  • long:8(字节)

  • char:2(字节)

  • float:4(字节)

  • double:8(字节)

精度范围:字符<short之上的整数<单精度<双精度

按照范围的大小,和精度范围,有小到大自动转换,可以如下图所示:

image-20220614193957444

强制转换

格式:

数据类型 新变量名称 = (数据类型)变量

对象一般是引用数据类型

强制转换为了将数据类型取值范围大容器,转变为使用数据取值范围内小的容器。可以理解为将桶里得水放在被子里。这种会出现数据溢出的风险,这需要取决于桶里的水有多少。

数据溢出后,可能会改变数据的值,也会造成乱码等等错误,严重会直接报错而中断程序

强制转换,是主动发出的,则需要使用相关的工具符号:()

转换格式:(转换类型)被转变量

double b = 100.99;
int a = (int) b;
  • 需要注意的地方:接收的数据类型和括号里的数据类型保持一致即可

如下所示,会出现无法装入容器的现象。

double num1 = 1.9;
char num2 = num1;


image-20220828165242618

改正:

double num1 = 1.9;
char num2 = (char) num1;

类型提升(扩展)

  • 由于默认的整数类型是int,小数类型是double

  • 那么当小于int类型的整数参与运算的 时候,会自动提升数据类型到int

  • 同理,小数类型参与运算的时候 ,会自动提升到double类型

public static void main(String[] args) {
char num1 = 1;
byte num2 = 2;
int sum = num1+num2;
System.out.println(sum);
}

常量优化机制

常量优化机制:自动判断结果的数据类型是否满足接收的容器类型的范围之内。如果是,则编译通过,如果不是则报错。

注意:如果出现了变量参与运算,则常量优化机制都不会执行。

对象一般都是基本数据类型(内置数据类型)

在Java中的默认整型是int,浮点型是double:

  • 非int类型的整数数据进行运算的时候,会自动提升为int类型来参与运算,返回结果也是int类型

  • 非double类型的浮点数进行运算的时候,会自动提升为double类型进行运算,返回结果double类型

如下图所示:整数a变量,b变量自动提升为了int类型,这种转换是自动的,依靠的是Java的隐式转换

image-20220614202148588

如果是A常量和B常量,则可以使用java的优化机制,即可通过编译:(我这里使用了Final关键字,来将变量变成常量)

image-20220614202433803

final short a = 1;
final short b = 1;
short c = a + b;

随便几个问题

  1. Java中有哪些注释?

  2. 随便说几个标识符的创建规则

  3. Java中的基本数据类型有哪些?

  4. Java中的数据类型可以分为哪两种??

  5. 定义变量的格式是什么??

  6. 简单说一下Java中关于基本数据类型的常量优化机制

文章版权声明 1、本网站名称:小余塘
2、本站永久网址:https://www.yxqz.top/
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ2457431511进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容