javaSE_Day_001

基础理论

1. 进制

  • 计算机中支持的进制有:二进制(BIN)、八进制(OCT)、十进制(DEC)和十六进制(HEX)
  • 计算机中使用二进制来进行数据的存储,并根据存储数据的类型来决定使用二进制多少位来进行存储。

1.1 二进制

(1)组成:0,1。

(2)进制规则:逢二进一。

1.2 十进制

(1)组成:0,1,2,3,4,5,6,7,8,9。

(2)进制规则:逢十进一。

1.3 八进制

(1)组成:0,1,2,3,4,5,6,7。

(2)进制规则:逢八进一。

1.4 十六进制

(1)组成:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。

(2)进制规则:逢十六进一。

2. 进制之间的转换

2.1 十进制 ---》二进制

(1)公式:将十进制的数据对二进行取余,直到商为0时停止,反向获取得到的余数就是十进制数据的二进制表示。

(2)例子1:

将十进制的11转换为二进制数据。

(3)例子2:

将十进制的7转换为二进制数据。

2.2 二进制 ---》十进制

(1)公式:系数 * 基数的权次幂(次方)相加求和。(其中:系数为二进制数据的每一位数字;基数为进制数)

2.3 二进制 ---》八进制

(1)公式:从左向右每三位二进制断开,不足三位则在左侧补零,求出三位二进制数对应的十进制数,拼接得到的就是八进制数。

(2)例子1:

将二进制数0b111100转换为八进制数。

2.4 二进制 ---》十六进制

(1)公式:从左向右每四位二进制断开,不足四位则在左侧补零,求出三位二进制数对应的十进制数,拼接得到的就是八进制数。

(2)例子1:

将二进制数0b111100转换为八进制数。

3. 原码、反码和补码

3.1 原码

(1)概念:原码就是符号位加上真值的绝对值,即用第一位表示符号位,其余位表示值。

(2)例子1:

+1 的原码为:0000 0001

-1 的原码为:1000 0001

3.2 反码

(1)反码的表示方式:

  • 正数:反码是其本身。
  • 负数:反码是在其原码的基础上,符号位不变,其余各个位取反。

(2)例子1:

+1 的反码为:0000 0001

-1 的反码为:1111 1110

3.3 补码

(1)补码的表示方式:

  • 正数:补码是其本身。
  • 负数:补码是在其反码的基础上+1。

(2)例子1:

+1 的补码为:0000 0001

-1 的补码为:1111 1111

Java概述

1. JDK、JRE和JVM

1.1 JDK

(1)概述:JDK(Java Development Kit)是整个Java的核心,包括了Java运行环境,Java工具(javac、java、jdb等)和Java基础的类库。

1.2 JRE

(1)概述:JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现以及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以不包括任何开发工具(例如编译器和调试器)。

1.3 JVM

(1)概述:JVM(Java Virtual Machine),即Java虚拟机,Java运行时的环境。

2. Java体系

2.1 Java体系中的三个版本

(1)JavaSE:Java标准版,Java中核心语言,是JavaEE和JavaME的基础。

(2)JavaEE:Java企业版,核心是JSP和Servlet,主要针对企业应用进行开发。

  • JavaEE企业开发提供三个常用的框架SSM:
    • Spring
    • SpringBoot
    • SpringMVC

(3)JavaME:Java嵌入式版本,移动平台开发软件所需要的语言(早期诺基亚智能操作系统“塞班”)。

第一个Java程序

1. Java项目的目录结构(IDEA版)

  • Day001:项目名称。
  • D:\IDEAProject\Day001:项目路径。
  • .idea:存储IDEA编译器的配置文件。
  • out:存储编译后所生成的.class文件。
  • src:存储用户编写的.java文件。
  • Day001.iml:IDEA工程配置文件。
  • External Libraries:IDEA在创建工程时自动导入的工程所需要的使用的jar包。

2. 第一个Java程序

public class FirstJava {
    
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
  • public、class、static、void为Java关键字
    • public:访问权限修饰符,含义为共有的。
    • class:代表创建的文件是一个文件。
      • 在Java中创建出的类文件是以.Java为后缀的文件(源文件),其主要作用是进行代码的编写。
      • 通过IDEA进行编译后会生成JVM可执行的.class文件(字节码文件)。
  • FirstJava:类名,如果其使用public关键字进行修饰,则类名必须与文件名保持一致。
  • public static void main(String[] args) {} :固定写法,是Java代码执行时的入口方法。
  • System.out.println("Hello World!"); :Java代码中的标准输出语法,作用是将小括号内部的数据输出到控制台。

3. 代码注释

3.1 单行注释

// 单行注释

3.2 多行注释

/*
	多
	行
	注
	释
*/

3.3 文档注释

/**
	文
	档
	注
	释
*/

(1)作用:用于生成外部文档。

(2)命令:Javadoc -d . 文件名.Java

Java基础

1. 关键字、保留字和标识符

1.1 关键字

(1)概念:在Java语言环境中被赋予了特殊含义的单词,称之为关键字(48个)。

1.2 保留字

(1)概念:在当前的Java版本中没有使用到,但是可能在以后的版本中赋予特殊含义的单词称之为保留字(如:const、goto)。

1.3 标识符

(1)概念:在Java编程过程中自己定义的名字,称之为标识符(如:文件名、类名、方法名、变量名、接口名、常量名等)。

(2)命名规则:

  • 标识符只能由字母、数字、下划线( _ )和美元符号( $ )组成。
  • 标识符不能以数字开头,也不能是单独的下划线和美元符号。
  • 标识符大小写敏感(严格区分大小写)
  • 不能使用关键字、保留字作为标识符。

(3)命名规范:

  • 类名、接口名每个单词首字母大写,其余字母小写(大驼峰式命名)。
  • 变量名、方法名第一个单词所有字母小写,其余单词首字母大写。
  • 常量名每个单词的字母均大写,单词与单词之间使用下划线连接。

2. 变量和常量

  • 在Java中需要将数值参与到代码中进行操作,为了方便编写代码时使用这些数值,Java提供了两种承载数值的方法:变量和常量。

2.1 常量

(1)概念:常量通常也被称为“final变量”,常量在整个程序中只能被赋值一次。在为所有对象共享值时,常量是非常有用的。在Java语言中声明一个常量,除了要指定数据类型外,还需要通过final关键字进行限定。

(2)声明方式:final 数据类型 常量名称 = 值

2.2 变量

(1)概念:计算机内存中的一块存储空间,是存储数据的基本单元。

(2)声明方式:

  • 先声明,再赋值:
    • 数据类型 变量名;
    • 变量名 = 值;
  • 声明并赋值(常用):
    • 数据类型 变量名 = 值

3. 数据类型

  • Java中的变量具有严格的数据类型区分。(强类型语言)

  • 在Java语言中,任何一个值,都有其对应类型的变量。

3.1 Java中的数据类型:

(1)基本数据类型:

  • 整数
    • byte
    • short
    • int
    • long:在java中任何一个整数,默认的类型为int,如果需要为long类型赋值,需要在值的后面追加“L”。
  • 小数
    • float:double为浮点数的默认类型,如需为float类型赋值,需要在值的后面加F。
    • double
  • 布尔
    • true
    • false
  • 字符
    • char

(2)引用数据类型:

  • 接口
  • 数组
3.1.1 基本数据类型(整数)
类型 字节 取值范围(二进制) 取值范围(十进制)
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 -2147483648 ~ 2147483647
long 8字节 -2^63 ~ 2^63-1 -9223372036854775808 ~ 9223372036854775807
public class TestType{
	public static void main(String[] args){
		
		System.out.println(Byte.MAX_VALUE);
		System.out.println(Byte.MIN_VALUE);
		
		System.out.println(Short.MAX_VALUE);
		System.out.println(Short.MIN_VALUE);
		
		System.out.println(Integer.MAX_VALUE);
		System.out.println(Integer.MIN_VALUE);
		
		System.out.println(Long.MAX_VALUE);
		System.out.println(Long.MIN_VALUE);
	}
}
3.1.2 基本数据类型(小数/浮点数)
类型 字节 负数取值范围 正数取值范围
float 4字节 -3.4E+38 ~ -1.4E-45 1.4E-45 ~ 3.4E+38
double 8字节 -1.7E+308 ~ -4.9E-324 4.9E-324 ~ 1.7E+308
3.1.3 基本数据类型(布尔)
类型 字节 取值范围 描述
boolean 1字节 true / false 仅可描述“真”或“假”
  • Java中boolean不能参与算术运算。
3.1.4 基本数据类型(字符)
类型 字节 取值范围(无符号数) 字符编码
char 2字节 0 ~ 65535 Unicode字符集(万国码)

4. 数据类型转换

  • 在8中基本数据类型中布尔类型不会参与数据类型转换。
  • Java中有一个默认原则:允许将存储范围小的数据转换成存储范围大的数据中;但是不允许将存储范围大的数据转换成存储范围小的数据。

4.1 自动类型转换

(1)概念:Java中将存储范围小的数据类型转换成存储范围大的数据类型时,会自动将存储范围小的数据类型转换成为存储范围大的数据类型,这个过程称为自动类型转换。

public class TypeConverDemo {
    
    public static void main(String[] args) {
        //自动类型转换
        byte b1 = 1;
        int a1 = b1;//自动类型转换,Java默认是允许的
        //因为int存储数据范围是大于byte存储范围
    }
}

4.2 强制类型转换

(1)概念:在Java中不能自动的将存储范围大的数据类型转换成存储范围小的数据类型,但是我们可以通过代码进行强制转换,这个操作过程称为强制类型转换。

(2)语法:存储范围小的数据类型 变量名 = (存储范围小的数据类型) 存储范围大的数据类型的值。

(3)注意:在进行强制类型转换时,可能会出现“精度缺失。

public class TypeConverDemo {
    
    public static void main(String[] args) {
        //强制类型转换
        int b1 = 1;
        byte a1 = (byte)b1;//强制类型转换,Java默认是不允许的
        System.out.println(b2);
        
        //可能会出现精度损失
        int b2 = 128;
        byte a2 = (byte)b2;
        System.out.println(b2);
    }
}
posted @ 2021-07-21 08:58  1706010214  阅读(40)  评论(0)    收藏  举报