Java学习笔记之Java基础语法01-变量与常量

文章目录

  • 0.前言
  • 1. 注释
    • 1.1 注释格式
    • 1.2 使用的技巧
  • 2. 关键字
    • 2.1 概念
    • 2.2 class关键字
    • 2.3 保留字
  • 3. 字面量
    • 3.1 字面量种类
    • 3.2 常用转义字符
  • 4.变量
    • 4.1 变量定义
    • 4.2 数据类型
      • 1.分类
      • 2.基本数据类型(四类八种)
      • 3.变量初始化细节
    • 4.3 计算机中的数据存储
    • 4.4 练习
      • 练习1
      • 练习2
      • 练习3
    • 4.5 标识符
      • 1.硬性要求:
      • 2.命名原则
        • A.小驼峰命名法
        • B.大驼峰命名法
        • C.阿里巴巴命名规范细节:

0.前言

  • 本Java笔记是对黑马程序员的Java笔记进行了重新的排版和整理,并对部分内容进行了优化,适用于学习过Java但需要复习加巩固基础的人群查阅,其中有不对或者不全之处,欢迎指正

1. 注释

1.1 注释格式

  • 注释是对代码的解释和说明文字。

  • Java中的注释分为三种:

    • 单行注释:

      // 这是单行注释文字
      
    • 多行注释:

      /*
      这是多行注释文字
      这是多行注释文字
      这是多行注释文字
      */
      
      • 注意: 多行注释不能嵌套使用。
    • 文档注释(暂时用不到):注释内容可以被JDK提供的工具javadoc所解析,生成一套一网页文件形式体现的该程序的说明文档,一般写在类上面

      • 解析格式:javadoc -d 文件名 -xx -yy TestComment.java

1.2 使用的技巧

  • 如果我们要对代码进行解释,那么就可以使用注释。

  • 当注释的内容比较少,一行就写完了,可以用单行注释。

  • 如果注释的内容比较多,需要写在多行,那么可以使用多行注释,但是多行注释里面不允许有多行注释嵌套。

注意事项:

  • 注释的内容不会参与编译和运行的,仅仅是对代码的解释说明而已。

  • 所以,不管在注释当中写什么内容,都不会影响代码运行的结果。

  • 类、方法的注释,要以javadoc的方式来写。

  • 非javadoc注释往往是给代码的维护者看的,着重告诉读者为什么这样写,如何修改,注意什么问题等。

2. 关键字

2.1 概念

  • 概念: Java赋予了特定含义的英文单词。

    • 当我们在代码中写了关键字之后,程序在运行的时候,就知道要做什么事情了。
  • 注意: 关键字很多,不用刻意去记。

abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try void volatile while
  • 分类:
  1. 用于定义数据类型的关键字:class、interface、enum、byte、short、int、long、float、double、 char、boolean、void
  2. 用于定义数据类型值的关键字:true、false、null
  3. 用于定义流程控制的关键字:if、else、switch、case、default、while、do、for、break、continue、return
  4. 用于定义访问控制权限修饰符的关键字:private、protected、public
  5. 用于定义类、函数,变量修饰符的关键字:abstract、final、static、synchronized
  6. 用于定义类与类之间的关键字:extends、implements
  7. 用于定义建立实例以及引用实例,判断实例的关键字:new、this、super、instanceof
  8. 用于处理异常的关键字:try、catch、finally、throw、throws
  9. 用于包的关键字:package、import
  10. 其它修饰符关键字:native、strictfp、transient、volatile、assert

2.2 class关键字

  • class:表示定义一个类 或 创建一个类。

    • 类是Java项目最基本的组成单元,一个完整的Java项目有可能会有成千上万个类来组成的。
  • 细节:

    • 后面跟随的就是这个类的名字,简称:类名。
    • 在类名后面会有一对大括号,表示这个类的内容。
  • 代码演示:

public class HelloWorld{
     
}
/*
解释:
- class表示定义类。
- 类名:HelloWorld
- HelloWorld后面的大括号表示这个类的范围。
*/

2.3 保留字

  • Java 保留字: 现有 Java 版本尚未使用,但以后版本可能会作为关键字使用,所以自己命名标识符时要避免使用
  • 保留字: byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const

3. 字面量

3.1 字面量种类

  • 作用: 告诉程序员,数据在程序中的书写格式。
字面量类型 说明 程序中的写法
整数 不带小数的数字 666,-88
小数 带小数的数字 13.14,-5.21
字符 必须使用单引号,有且仅能一个字符 ‘A’,‘0’, ‘我’
字符串 必须使用双引号,内容可有可无 “HelloWorld”,“黑马程序员”
布尔值 布尔值,表示真假,只有两个值:true,false true 、false
空值 一个特殊的值,空值,不能直接打印,会报错 值是:null
  • 代码演示:

    public class Demo {
        public static void main(String[] args) {
            System.out.println(10); // 输出一个整数
            System.out.println(5.5); // 输出一个小数
            System.out.println('a'); // 输出一个字符
            System.out.println(true); // 输出boolean值true
            System.out.println("欢迎来到黑马程序员"); // 输出字符串
        }
    
    
  • 区分技巧:

    1. 不带小数点的数字都是整数类型的字面量。
    2. 只要带了小数点,那么就是小数类型的字面量。
    3. 只要用双引号引起来的,不管里面的内容是什么,不管里面有没有内容,都是字符串类型的字面量。
    4. 字符类型的字面量必须用单引号引起来,不管内容是什么,但是个数有且只能有一个。
    5. 字符类型的字面量只有两个值,true、false。
    6. 空类型的字面量只有一个值,null。
    7. \t制表符:在打印的时候,把前面字符串的长度补齐到8,或者8的整数倍。最少补一个空格,最多补8个空格。

3.2 常用转义字符

转移字符 作用
\t 一个制表位,实现对其功能
\n 换行符
\\ 一个\
\" 一个“
\' 一个’
\r 一个回车,System.out.println(“韩顺平教育\r北京”);

代码演示:

//演示转义字符的使用
public class ChangeChar{
	//编写一个main方法
	public static void main(String[] args){
		//\t :一个制表位,实现对齐的功能
		System.out.println("北京\t 天津\t 上海");
		// \n :换行符
		System.out.println("jack\nsmith\nmary");
		// \\ :一个\ \\
		System.out.println("C:\\Windows\\System32\\cmd.exe");
		// \" :一个" 
		System.out.println("老韩说:\"要好好学习 java,有前途\"");
		// \' :一个' 
		System.out.println("老韩说:\'要好好学习 java,有前途\'");
		// \r :一个回车 
		System.out.println("韩顺平教育\r北京");
		// 解读
		// 1. 输出 韩顺平教育
		// 2. \r 表示回车
		System.out.println("韩顺平教育\r北京"); // 北京平教育
		System.out.println("韩顺平教育\n武汉 \r 北京");
	}
}

4.变量

4.1 变量定义

  • 文字定义: 变量就在程序中临时存储数据的容器。但是这个容器中只能存一个值。变量是程序的基本组成单位。

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

    • 格式详解:

      • **数据类型:**限定了变量当中能存储什么类型的数据。

        • 如果要存10,那么数据类型就需要写整数类型。
        • 如果要存10.0,那么数据类型就需要写小数类型。
      • **变量名:**其实就是这个容器的名字,当以后想要使用变量里面的数据时,直接使用变量名就可以了。

      • **数据值:**真正存储在容器中的数据。

      • **分号:**表示语句的结束,就跟以前写作文时候的句号是一样的。

4.2 数据类型

1.分类

  • 基本数据类型
  • 引用数据类型:类、接口、数组(面向对象的时候再深入学习)

2.基本数据类型(四类八种)

数据类型 关键字 内存占用(字节) 取值范围
整数(数值型) byte 1 记忆:负的2的7次方 ~ 2的7次方-1(-128~127)
short 2 负的2的15次方 ~ 2的15次方-1(-32768~32767)
int 4 负的2的31次方 ~ 2的31次方-1
long 8 负的2的63次方 ~ 2的63次方-1
浮点数(数值型) float 4 1.401298e-45 ~ 3.402823e+38
double 8 4.9000000e-324 ~ 1.797693e+308
字符型 char 2 0~65535
布尔型 boolean 1 true,false
  • 注意事项:

    • 在java中整数默认是int类型,浮点数默认是double类型。
    • byte类型的取值范围:-128 ~ 127
    • int类型的大概取值范围:-21亿多 ~ 21亿多
    • 整数类型和小数类型的取值范围大小关系:double > float > long > int > short > byte
  • 技巧:

    • 最为常用的数据类型选择:

      • 在定义变量的时候,要根据实际的情况来选择不同类型的变量。

        • 比如:人的年龄,可以选择byte类型。
        • 比如:地球的年龄,可以选择long类型。
      • 如果整数类型中,不太确定范围,那么默认使用int类型。

      • 如果小数类型中,不太确定范围,那么默认使用double类型。

      • 如果要定义字符类型的变量,那么使用char

      • 如果要定义布尔类型的变量,那么使用boolean

3.变量初始化细节

  • 代码演示:
public class VariableDemo3{
    public static void main(String[] args){
        //1.定义byte类型的变量
        //数据类型 变量名 = 数据值;
        byte a = 10;
        System.out.println(a);

        //2.定义short类型的变量
        short b = 20;
        System.out.println(b);

        //3.定义int类型的变量
        int c = 30;
        System.out.println(c);

        //4.定义long类型的变量
        long d = 123456789123456789L;
        System.out.println(d);

        //5.定义float类型的变量
        float e = 10.1F;
        System.out.println(e);

        //6.定义double类型的变量
        double f = 20.3;
        System.out.println(f);

        //7.定义char类型的变量
        char g = 'a';
        System.out.println(g);

        //8.定义boolean类型的变量
        boolean h = true;
        System.out.println(h);

    }
}

定义过程中的细节:

  • 如果要定义一个long类型的变量,那么在数据值的后面需要加上L后缀。(大小写都可以,建议大写。)

  • 如果要定义一个float类型的变量,那么在数据值的后面需要加上F后缀。(大小写都可以)

  • Java各数据类型有固定的范围和字段长度,不受具体操作系统的影响,以保证java程序的可移植性。

  • bit:计算机中的最小存储单位;byte:计算机中基本存储单元,两者转换公式:1byte = 8 bit。

  • 浮点数:

    • 浮点数在机器中存放形式:浮点数 = 符号位 + 指数位 + 尾数位,位数部分可能丢失,造成精度损失(小数都是近似值)

    • 浮点型常量有两种表现形式:

      • 十进制形式:5.12 5.12F .512(必须有小数点)
      • 科学计数法形式:5.12E2 5.12e-2
    • 不能直接对浮点数进行相等的判断

      //浮点数使用陷阱: 2.7 和 8.1 / 3 比较
      double num11 = 2.7;
      double num12 = 8.1 / 3;
      System.out.println(num11);
      System.out.println(num12);
      //得到一个重要的使用点: 当我们对运算结果是小数的进行相等判断是,要小心
      //应该是以两个数的差值的绝对值,在某个精度范围类判断
      if(num11 == num12){
          System.out.println("num11 = num12 相等");
      }
      
      //正确的写法 , ctrl + / 注释快捷键, 再次输入就取消注释
      if(Math.abs(num11-num12) < 0.00001){
          System.out.println("差值非常小,到达我的规定精度,认为相等...");
      }
      System.out.println(Math.abs(num11 - num12));
      //细节:如果是直接查询得的的小数或者直接赋值,是可以判断相等
      
  • 字符类型:

    • 字符常量是用单引号括起来的单个字符

      • 代码演示:
      char c1 = 'a';
      char c2 = '中';
      char c3 = '9';
      
    • Java中还允许使用转义字符来将其后的字符转变为特殊字符型常量

      • 代码演示:
      char c4 = '\n';//'\n'表示换行符
      
    • 字符类型数据本质是一个整数,输出的是整数在unicode码中对应的字符,因此可以直接给char赋一个整数,同时还可以进行运算,相当于一个整数

使用过程中的注意事项

  • 变量表示内存中的一个存储区域,不同类型的变量占用的空间大小不同。
  • 变量名在同一作用域内不能重复
  • 在一条语句中,可以定义多个变量。但是这种方式影响代码的阅读,所以了解一下即可。
  • 变量在使用之前必须要赋值。
  • 变量名只能存一个值,该容器的数据/值可以在同一类型范围内不断变化。
  • 变量的作用域范围。

代码演示:

public class VariableDemo2{
	public static void main(String[] args){
		//1.变量名不允许重复
		//int a = 10;
		//int a = 20;
		//System.out.println(a);
		
		//2.一条语句可以定义多个变量
		//了解。
		//int a = 10, b = 20, c = 20,d = 20;
		//System.out.println(a);//?
		//System.out.println(b);//?
		
		
		//3.变量在使用之前必须要赋值
		int a = 30;
		System.out.println(a);
	}
}

4.3 计算机中的数据存储

在计算机中,任意数据都是以二进制的形式来存储的

JDK7的特性:

二进制:0,1 ,满 2 进 1。以 0b 或 0B 开头。

十进制:0-9 ,满 10 进 1。前面不加任何前缀

八进制:0-7 ,满 8 进 1。以数字 0 开头表示

十六进制:0-9 及 A(10)-F(15),满 16 进 1。以 0x 0X 开头表示。此处的 A-F 不区分大小写。

ASCII码表:美国信息交换码表,仅需一个字节表示,一共128个字符,一共字节实际可以表示256个字符,但是只用了128个,只占用了一个字节的后面7位,最前面的一位统一规定为0

GB2312编码:简体中文汉字编码国家标准

BIG5编码:台湾地区繁体中文标准字符集

GBK编码:微软字符码表,可以表示汉字,而且范围广,字母使用1个字节,汉字使用3个字节

Unicode:国际标准字符集,固定大小的编码,使用两个字节来表示字符,字母和汉字统一都是占用两个字节

UTF-8编码:大小可变的编码,字母使用1个字节,汉字使用3个字节

4.4 练习

练习1

  • 需求:定义5个变量记录老师的信息并打印

  • 代码演示:

    public class VariableTest1{
    	public static void main(String[] args){
    		//1.定义字符串类型的变量记录老师的姓名
    		String name = "黑马谢广坤";
    		//2.定义整数类型的变量记录老师的年龄
    		int age = 18;
    		//3.定义字符类型的变量记录老师的性别
    		char gender = '男';
    		//4.定义小数类型的变量记录老师的身高
    		double height = 180.1;
    		//5.定义布尔类型的变量记录老师的婚姻状况
    		boolean flag = true;
    		
    		//输出5个变量的值
    		System.out.println(name);
    		System.out.println(age);
    		System.out.println(gender);
    		System.out.println(height);
    		System.out.println(flag);
    		
    	}
    }
    

练习2

  • 需求:将(电影名称,主演,年份,评分)四个信息选择不同类型的变量,随后打印出来。

  • 代码演示:

    public class VariableTest2{
    	public static void main(String[] args){
    		//1.定义字符串变量记录电影的名称
    		String movie = "送初恋回家";
    		//2.定义三个变量记录主演的名字
    		String name1 = "刘鑫";
    		String name2 = "张雨提";
    		String name3 = "高媛";
    		//3. 定义整数类型的变量记录年龄的年份
    		int year = 2020;
    		//4.定义小数类型的变量记录电影的评分
    		double score = 9.0;
    		
    		//打印变量的信息
    		System.out.println(movie);
    		System.out.println(name1);
    		System.out.println(name2);
    		System.out.println(name3);
    		System.out.println(year);
    		System.out.println(score);
    		
    	}
    }
    

练习3

  • 需求:选择其中一部手机,将(手机价格,手机品牌)两个信息选择不同类型的变量,随后打印出来。

  • 代码演示:

    public class VariableTest3{
    	public static void main(String[] args){
    		//1.定义小数类型的变量记录手机的价格
    		double price = 5299.0;
    		
    		//2.定义字符串类型的变量记录手机的品牌
    		String brand = "华为";
    		
    		//输出变量记录的值
    		System.out.println(price);
    		System.out.println(brand);
    	}
    }
    

4.5 标识符

  • 定义:Java对各种变量、方法和类等命名时使用的字符序列称为标识符
    • 业内大多数程序员都在遵守阿里巴巴的命名规则。

1.硬性要求:

  • 必须由数字、字母、下划线_、美元符号$组成。
  • 数字不能开头
  • 不能是关键字
  • 区分大小写的,长度无限制

2.命名原则

不管起什么名字,都要做到见名知意。

A.小驼峰命名法

变量名和方法名:

  • 如果是一个单词,那么全部小写,比如:name

  • 如果是多个单词,那么从第二个单词开始,首字母大写,比如:firstName、maxAge

B.大驼峰命名法

类名:

  • 如果是一个单词,那么首字母大写。比如:Demo、Test。
  • 如果是多个单词,那么每一个单词首字母都需要大写。比如:HelloWorld
C.阿里巴巴命名规范细节:
  1. 尽量不要用拼音。但是一些国际通用的拼音可视为英文单词。

    正确:alibaba、hangzhou、nanjing

    错误:jiage、dazhe

  2. 平时在给变量名、方法名、类名起名字的时候,不要使用下划线或美元符号。

    错误:_name

    正确:name

  3. 包名:统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。

    正例: 应用工具类包名为 com.alibaba.open.util、类名为 MessageUtils(此规则参考spring 的框架结构)

  4. 常量名:常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。正例:MAX_STOCK_COUNT

你可能感兴趣的:(编程笔记,编程实战,java,学习,笔记)