第5篇 基本语法篇(注释、基本数据类型、类型转换、变量、命名规则和关键字)

1. 注释

  • 单行注释 //注释
  • 多行注释 /* 注释 */
  • 文档注释 /** 注释 */

2. 标识符命名规则 (与 js 规则一样)

  • 标识符可以含有 字母, 数字, 下划线_, (*注意此处相较于 c 语言多出一个符)

  • 不能以数字开头

  • 不能是java中的保留字和关键字

  • java也采用了 unicode 编码方式,所以字母也可以是中文

  • 建议采用驼峰法:

  • -首字母小写,每个单词开头字母大写,其余均小写

3.基本数据类型

3.1 整数型

类型 长度字节 位数 取值范围 备注
byte类型 1个字节 8位 -2^7 - 2^7-1 -128 - 127
short类型 2个字节 16位 -2^15 - 2^15-1 -32768-32767
int 类型 4个字节 32位 -2^31 - 1~2^31-1
long 类型 8个字节 64位 -2^63 - 1~2^63-1 末尾加L

注解:

  • 整型的范围与运行java代码的机器无关,这一点和C、C++不同,保证了代码在不同的平台之间的可移植型。

  • int最为常用,char和short主要用于特定场合,比如底层处理文件、处理需要占用大量存储空间的数组。要表示的数据超过int类型的范围时使用长整型int.

  • 通常long类型后通常加字符“L”,例如 long a = 123L ; , 但是"L"理论上不区分大小写,但若写成小写的"l",容易与数字"1"混淆,不容易分辩,所以最好写成大写的“L”


3.2 浮点型

类型 长度字节 位数 取值范围 备注
float 类型 4字节 32位 大约±3.402 823 47E+38F(有效位为6~7位) 末尾加f
double 类型 8字节 64位 大约±1.79769313486231570E+308(有效位为15位)

注解:

  • 默认浮点数使用类型为double, 其后可加字符“d”,"d"理论上不区分大小写

  • 所以为了区分,通常浮点型末尾末尾加字符”f”, 例如 float a =3.1415926535f ;, "f"理论上不区分大小写

  • float 和 double 不能用来表示精确的值,如不能用来表示货币等。实际使用 BigDecimal 类

  • 科学记数法: 结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103=3140,3.14E-3 就是 3.14 x 10-3 =0.00314

  • 显然±3.402 823 47E+38F范围大于-2^63 - 1~2^63-1,即float范围大于long,可惜float不是完全精确的。


3.3 字符型

类型 长度字节 位数 取值范围 备注
char 类型 2个字节 16位 \u0000 - \uffff 0 - 65535

注解:

  • Java的char类型可以表示标准的ASCII,

  • char类型还可以表示一个Unicode字符,代表一个单一的16位 Unicode 字符

  • 想要打印 Unicode 字符 可以使用 “\u”+数字

  • 字符和字符串是两种不同的数据类型。char类型使用单引号''表示,单引号里面只能有一个字符。字符串用双引号""表示,双引号中可以有很多字符。


3.4 布尔型

类型 长度字节 位数 取值范围 备注
boolean 类型 0字节 1 位 true or false 默认值是 false

注解:

  • JAVA规范中没有定义boolean类型的大小, 理论上组需要1bit 即可,但是编译时有定义:JVM规范第2版 3.3.4节

    • 单个的boolean 类型变量在编译的时候是使用的int 类型,4个字节(32bit)
    • 但如果是boolean数组在编译的时候是作为byte array来编译的,每一个元件占1字节(8 bits)

3.5 对比总结

  1. byte 作用类似于 c++中的char,但又无法直接存字符

  2. char 大小与c++不同,多了一个字节,2字节可存 unicode, 所以可以是中文

  3. java 无 unsigned 类型

  4. java 常量的需要加修饰符 final,相当于c++中的 const

基本数据类型字节数


3.6 类型转换

类型 byte => short =>int => long => float => double
优先级 低>>>>>>>>>>>>>>>>>>>>>>>>>>>>>高
  • 低可以直接转高,但是高转低会出现溢出和丢精度的现象

  • 不能对boolean类型进行类型转换,(String不是基本数据类型,能进行拼接)

  • 高转低需要强制类型转换,显式写明要转换的类型

  • 当多种数据类型的数据混合运算时,Java首先会自动将所有的数据转换成优先级高的的那种数据类型,然后再进行计算

  • char byte short 三者计算时都会先转换为int型再进行运算。

  • 不需要显式强制转换的特例:由于整数默认类型是int,JVM会根据声明和char byte short 三者各自的数值范围把 int 值 自动强制转换成对应的类型,如果值超过范围还是需要显式地强制转换


4.变量

  • 类变量

  • 实例变量

  • 局部变量

    public class Person {
    //类变量: 需要关键词 static
    static int population = 1;
    //实例变量:从属于对象; 如果不初始化,会赋予默认值0, 0.0, false, null
    String name;
    int age;
    //mian方法
    public static void main(String[] args) {
    //局部变量: 声明后必须初始化值,不然报错
    /*int i;
    System.out.println(i);*/
    int i;
    i=10;
    System.out.println(i);
    /*
    * 实例变量需要先创建一个对象
    * 实例变量如果不复赋值则为默认值
    */
    /*
    * 创建对象
    * 变量类型 变量名 = new 构造函数;
    */
    Person person = new Person();
    System.out.println(person.name);
    System.out.println(person.age);
    person = null;
    /*
    * 类变量的调用
    * 类变量无需对象就可以调用
    * 相当于c++中的静态成员,整个类共用一个
    */
    System.out.println(population);
    }
    }

4.1 变量命名规则

  • 所有变量、方法、类名: 见名知意
  • 类名 : 首字母 大写 和驼峰原则: Man, GoodMan
  • 类成员变量、局部变量: 首字母 小写 和驼峰原则 : monthSalary
  • 常量 : 大写字母和下划线 : MAX_VALUE
  • 方法名 : 首字母小写和驼峰原则 : run(), runRun0
  • 枚举类型里的枚举常量的名称应使用全大写字母,且不能包含空格、标点符号和其他符号。

5.关键字

在Java中目前一共有53个关键字:

  • 48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while

  • 3个特殊直接量:true、false、null

  • 2个保留字:goto、const


java 关键字


几个不常用的关键字:

  • assert : 断言(在异常这一章用)。它用于在程序执行时验证某些条件是否满足。如果条件成立,则程序继续执行;否则程序抛出异常或直接终止。

  • enum:枚举类。Java5之前,发挥类似作用的是final class。但是enum更方便。enum枚举类存储着枚举值的索引、名称、所有枚举值等重要信息,并且可以将每一个枚举值视为一个对象,进行自定义扩展属性和方法。

    • 枚举类型的定义使用关键字“enum”,在定义中列出所有的枚举常量。每个枚举常量都是该枚举类型的实例,它们被分配了默认的名称
    • 枚举类型的实例可以通过名称或序号来访问。
    • 枚举类型的名称应该使用大写字母,以便与其他类和变量区分开来。枚举常量的名称也应该使用大写字母,且不能包含空格、标点符号和其他符号。
  • strictfp : 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范

  • transient :声明不用序列化的成员域

  • synchronized : 表明一段代码需要同步执行

  • volatile : 表明两个或者多个变量必须同步地发生变化

  • native : 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的

posted @   问稻  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示