一、注释

注释是一个非常重要的技术,好的注释能够大大的提升你代码的可读性,我们的代码是需要人进行阅读的。如果这个注释是为了阐述代码背后的意图,那么这个注释就是有用的

不论是单行还是多行注释,都不参与编译,即编译之后生成的.class文件中不包含注释信息。

java的注释主要分为以下三点:单行注释、多行注释、文档注释

1.1 单行注释


static void main(String[] args) {
        //这里是单行注释
        System.out.println("Hello World");
        System.out.println();
    }

单行注释使用的最多的,他可以阐述一行代码的作用,一个变量的作用,一个方法的作用等

1.2 多行注释

/* 注释内容 */

IDEA实用技巧:/ + * + 回车

当你需要对写一串很长的解释时,就可以用到

1.3 文档注释

/*** 注释内容 ***/

IDEA实用技巧:/ + ** + 回车

文档注释通常使用在对一个java文件的作用,或者其他信息,例如下面这个代码交代了这个文档的多个信息

1.4 注释规范

  1. 内容准确:解释清楚代码背后的意图

  2. 篇幅合理:简单明了的阐述代码的作用,不要太多重复的东西

  3. 使用中文:我们初学者尽量使用中文,到后期导师需要或者进入外企工作另说

二、标识符

2.1 什么是标识符?

标识符就是给我们程序中的元素取一个名字,就例如:

static void main(String[] args) {
    String StuName = "zhang san";//这里的StuName就是标识符
    int StuAge = 18;
}

其实简单来说,标识符就是程序员给变量、方法、类等起的名字

2.2 标识符的硬性规定

1、标识符可以包含:字母、数字以及下划线和&美元符号等

    static void main(String[] args) {
        String name = "合法";        // 字母开头
        int age1 = 20;              // 包含数字(但不能开头)
        double $salary = 5000.0;    // 包含$符号
        boolean _isValid = true;    // 包含_下划线
        String 中文变量 = "也可以";   // 甚至支持中文(但不推荐)
    String name = "小明";
    String Name = "小红";  // 这是两个不同的变量

}

注意:标识符是不能以数字开头的,也不能是关键字,并且严格区分

​2.3标识符的命名规范

驼峰命名法:

    String studentName = "张三";
    int maxScore = 100;
    boolean isActive = true;

常量命名:全大写+下划线分开

    public static final int MAX_STUDENT_COUNT = 100;
    public static final double PI_VALUE = 3.14159;
    public static final String DEFAULT_USER_NAME = "guest";

三、关键字

3.1 什么是关键字

Java关键字是Java语言中事先定义的、有特殊意义的保留字(标识符),它们对Java编译器有特殊含义,不能用作变量名、方法名、类名、包名和参数。

关键字能够大大的提高你的代码编写效率,官方将一些常用的方法事先定义,当我们使用时只要用关键字就OK。

3.2 有哪些关键字

Java为我们提供了许多实用的关键字,我举几个常见的:

数据类型:

关键字

作用

示例

int

整数类型

int count = 10;

boolean

布尔类型(true/false)

boolean isValid = true;

double

双精度浮点数

double pi = 3.14159;

char

字符类型

char letter = 'A';

程序流程控制:

关键字

作用

示例

if

条件判断

if (x > 0) { ... }

else

条件不满足时执行

else { ... }

for

循环结构

for (int i=0; i<10; i++) { ... }

while

条件循环

while (x > 0) { ... }

break

跳出循环

break;

continue

跳过当前循环

continue;

四、字面常量

4.1字面常量的基础概念

字面常量(literal constant) 是指在程序中直接写出来的、以字面形式表示的常量值

像我们上篇博客的代码里的Hello World就是字面常量:

 static void main(String[] args) {
        System.out.println("Hello World");
   

其中,a 、123 、 3.1415926、true等都是字面常量

4.2 字面常量的分类

  1. 字符串常量:写在"“里面,就像上面的"hello world”,或者其他的"1234"、“国家”

  2. 整形常量:程序中直接写的数字(注意没有小数点),比如:100、1000

  3. 浮点数常量:有小数点的数字:3.14、1.0

  4. 字符常量:写在单引号内的单个字符:‘D’

  5. 布尔常量:true、false

  6. 空常量:null

五、数据类型

在Java中,数据类型分为基本数据类型和引用数据类型:

类型

大小(字节)

取值范围

默认值

字面量表示方式

说明

byte

1

-128 到 127

0

100

整型,最小的整数类型

short

2

-32,768 到 32,767

0

1000

整型,比byte大

int

4

-2³¹ 到 2³¹-1 (约±21亿)

0

100000

整型,整数的默认类型

long

8

-2⁶³ 到 2⁶³-1

0L

100000L

整型,需要在数字后加L或l

float

4

约 ±3.4e+38 (有效位数6-7位)

0.0f

3.14f

浮点型,需要在数字后加F或f

double

8

约 ±1.8e+308 (有效位数15位)

0.0d

3.1415926

浮点型,浮点数的默认类型,可省略d

char

2

Unicode字符,\u0000 到 \uffff

‘\u0000’

‘A’

字符型,单个字符

boolean

1

true 或 false

false

true

布尔类型,表示真/假

注意:

  1. 不论是32还是64位的系统,int类型始终占据四个字节

  2. 整型和浮点型都是带有符号的

  3. 整型默认为int型,浮点型默认为double型

5.1 整型数据类型

整型数据类型主要分为:byte、short、int、long

static void main(String[] args) {
        // 1. byte:8位,范围 -128 ~ 127
        byte age = 10;
        byte temperature = -10;
        System.out.println("byte的范围为 " + Byte.MAX_VALUE + "~" + Byte.MIN_VALUE);
    //2. short:16位,范围 -32768 ~ 32767
    short temperature1 = -10;
    short temperature2 = 10;
    System.out.println(&quot;short的范围为 &quot; + Short.MAX_VALUE + &quot;~&quot; + Short.MIN_VALUE);

    // 3. int:32位,最常用(默认整型)
    int a = 1;
    int b = 2;
    System.out.println(&quot;int的范围为 &quot; + Integer.MAX_VALUE + &quot;~&quot; + Integer.MIN_VALUE);

    //4. long:64位,超大整数(后缀L)
    long a1 = 1L;
    long b1 = 2L;
    System.out.println(&quot;long的范围为 &quot; + Long.MAX_VALUE + &quot;~&quot; + Long.MIN_VALUE);
}

5.2 浮点型数字类型

浮点型类型主要分为float和double

static void main(String[] args) {
        // 1. float:32位单精度(后缀F)
        float a = 10F;
        float b = 10f;//F和f都可以。
        float c = 3.14f;
        System.out.println("float范围:约 ±3.4e38,精度6-7位小数");
    //2. double:64位双精度(默认浮点型)
    double d = 3.14;
    double e = 5.972e24;  // 科学计数法
    double g = 3.141592653589793;
    System.out.println(&quot;double范围:约 ±1.7e308,精度15位小数&quot;);
}

5.3 字符型数据类型

static void main(String[] args) {
        // char:16位Unicode字符
        char letterA = 'A';           // 单引号
        char digit = '9';             // 数字字符
        char chinese = '中';          // 中文字符
        char symbol = '$';            // 符号
        char newline = '\n';          // 转义字符:换行
        char tab = '\t';              // 转义字符:制表符
        char unicode = '\u0041';      // Unicode编码(A)
        System.out.println("字母: " + letterA);
        System.out.println("中文: " + chinese);
        System.out.println("Unicode: " + unicode);
        System.out.println("换行" + newline + "效果");
    }

5.4 布尔类型

Java的布尔类型只有“ture”和“flase”这两个结果,没有0或非0的说法。

static void main(String[] args) {
        boolean a = true;
        boolean b = false;
        System.out.println("布尔类型的返回值只有:"+ a+ "和" +b);
    }

5.5 引用数据类型

5.5.1 字符串类型

字符串类型需要用双引号——""把内容包括起来

 static void main(String[] args) {
        String StuName = "zhang san";
        String StyAge = "19岁";
        String message = "Hello, World!";
        String emptyString = "";      // 空字符串
        String nullString = null;     // 空引用
    //字符串操作
    String firstName = &quot;张&quot;;
    String lastName = &quot;三&quot;;
    String fullName = firstName + lastName;  // 字符串拼接
    int length = fullName.length();          // 字符串长度
}

字符串操作方面,我想着重讲一下字符串的拼接和计算字符串的长度,这是我们后期经常使用的

字符串拼接,就像上面代码写的,已经有两个字符串常量了,我们定义一个新的字符串常量,将两个原有的相加后赋值给新创建的就OK了,非常的放方便

字符串长度计算:我们这里使用

//要计算的字符串常量 + . + length();
int ret = fullname.length(); 

5.5.2 指针类型

这个类型我们到后面讲到指针的时候和大家细讲。

六、 数据类型转换

从小类型到大类型

byte → short → int → long → float → double
char → int

注意:如果从大类型转到小类型,可能会出现数据遗失问题

6.1 隐式转换

由小转为大的时候,编译器会自动帮我们转换好,我们现在举个例子

static void main(String[] args) {
        byte age = 18;
        int a = age;
        long b = age;
        short c = age;
        float d = age;
        double e = age;
        System.out.println("byte → int → long → float → double");
    }

6.2 强制类型转换(显式转换)

大转小的时候如果不做强转,是会报错的,就像这样

那么我们在特殊场景的时候该如何把大的数据类型转换成小的数据类型呢,这时候就要用到强转了

类型(大的) + 变量名 = 类型(小的) + 变量名
static void main(String[] args) {
        double big = 123.456;
        int medium = (int) big;        // double → int(丢失小数部分)
        byte small = (byte) medium;    // int → byte(可能溢出)
}

另外我想多提一下int和string之间的互转

int 转 string:

int num = 10;
// 方 法 1
String str1 = num + "";
// 方 法 2
String str2 = String.valueOf(num);

string 转 int:

String str = "100";
int num = Integer.parseInt(str);