Java基础Day01

作为一名JAVA开发的程序员,一直没有好好整理过自己的笔记和技术栈。很多用过的东西都忘了,从今天起,开始记录下自己的学习历程。希望还能跟上时代的步伐。谨记 不骄不躁

JDK-11和Notepad++下载在下面

1_Java语言发展史(了解)

  • Java语言诞生于1995年,由Sun公司推出。
    ​ 2009年,Sun公司被甲骨文(oracle)公司收购,官网地址:https://www.oracle.com
    ​ Java之父:詹姆斯·高斯林 (James Gosling), 是java语言的主要创始人。
    ​ 目前最新JDK12,课程用的JDK11

2_Java语言跨平台原理

平台和跨平台

​ 平台即操作系统,主要有Windows、Mac、Linux系统

​ 跨平台指的是java程序可以在不同的操作系统上直接运行,具有一次编译,到处运行的特点。

java语言的跨平台原理

​ Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行。

​ ==所以在不同的操作系统下,只需安装不同的Java虚拟机即可实现java程序的跨平台。
Java基础Day01_第1张图片

3_JRE和JDK

JVM、JRE、JDK关系图解:

Java基础Day01_第2张图片
JVM
java虚拟机, 保证java程序能跨平台。(Java Virtual Machine)

JRE
Java运行环境,包含了JVM和Java的核心类库(核心代码)。(Java Runtime Environment)
想要运行一个已有的Java程序,只需要安装JRE即可。

JDK
Java开发工具,包含了JRE和开发工具。(Java Development Kit)
想要开发一个Java程序, 必须先安装JDK。

总结
我们只需安装JDK即可,它包含了java的运行环境和虚拟机。

4_JDK的下载和安装

指定路径安装

将JDK安装到指定目录下,比如E:\develop\java\jdk-11

​ 注意:安装目录下不要有中文或空格等特殊字符。

安装目录文件介绍

目录名称 说明
bin 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。
conf 该路径下存放了JDK的相关配置文件。
include 该路径下存放了一些平台特定的头文件。
jmods 该路径下存放了JDK的各种模块。
legal 该路径下存放了JDK各模块的授权文档。
lib 该路径下存放了JDK工具的一些补充JAR包。jar包:写好并打包的java程序。

5_常用DOS命令(了解)

如何进入DOS命令行窗口

快捷键win + R打开运行窗口,输入cmd,按回车进入。
Java基础Day01_第3张图片

常用DOS命令

操作 说明
盘符名称: 盘符切换。E:回车,表示切换到E盘。
dir 查看当前路径下的内容。
cd 目录 进入单级目录。cd develop,表示进入develop文件夹。
cd … 回退到上一级目录。
cd 目录1\目录2… 进入多级目录。cd develop\java,表示进入develop下的java文件夹。
cd\ 回退到盘符根目录。
cls 清屏。
cls 退出命令提示符窗口。

DOS命令进入JDK的bin目录,运行javac和java

javac 编译代码

javac 文件名

java 运行程序

java 程序名称

6_Path环境变量的配置

配置JDK的path环境变量的作用:

​ 可以在任意路径下使用JDK的bin目录下提供的开发工具。

配置步骤

1、此电脑—>属性—>高级系统设置—>高级—>环境变量
Java基础Day01_第4张图片
2、新建系统变量

​ 变量名:JAVA_HOME

​ 变量值:JDK的安装目录(到bin目录的上一层)
Java基础Day01_第5张图片
3、将 %JAVA_HOME%\bin 添加到Path变量中。 %环境变量名% 引用某指定的环境变量
Java基础Day01_第6张图片
4、打开DOS系统,输入javac,验证是否配置成功。
Java基础Day01_第7张图片

7_HelloWorld案例

Java程序开发运行流程

​ 编写代码:编写.java后缀的源文件

​ 编译代码:将.java文件编译成.class后缀的字节码文件 javac

​ 运行程序:使用 java工具运行编译好的字节码文件 java

编译命令 :javac 源文件名.java  javac HelloWorld.java
运行程序: java 类名  java HelloWorld

Java基础Day01_第8张图片

HelloWorld案例
  • 新建文本文档,修改名称为HelloWorld.java

  • 编辑并保存HelloWorld.java文件

  • 打开命令行窗口,将目录切换至java文件所在目录,编译并执行。

    编译命令:javac HelloWorld.java

    运行命令:java HelloWorld

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("HelloWorld");
	}
}

8_HelloWorld案例常见问题

​ 1)、中文符号问题。(java中的符号都是英文的)

​ 2)、单词大小写问题。(java是区分大小写的)

​ 3)、文件扩展名问题。(java源文件扩展名为.java)

​ 4)、文件名和类名不一致问题。(public限制java文件名和类名要一致)

显示文件扩展名的设置Java基础Day01_第9张图片

9_Notepad++的安装和使用

NotePad++基本设置

​ 设置 --> 首选项 --> 新建,格式选择Windows,编码选择ANSI。
Java基础Day01_第10张图片

/*
	练习: 使用java程序,在屏幕上输出自己的姓名
*/
public class HelloName{
    public static void main(String[] args){
    	    System.out.println("林志玲");
    }
}

10_注释

注释的作用

​ 注释是对程序的解释说明文字,可以提高程序的可读性。

注释的分类

单行注释  // 注释内容 ,可以嵌套
	
多行注释  /*  注释内容,不可以嵌套 */ 

文档注释 /** 注释内容 ,不可以嵌套*/

11_java关键字

什么是关键字

​ 在java语言中有特殊意义的英文单词。

关键字的特点

​ 单词全部小写。

​ 在高级开发工具中,关键字都会有特殊的颜色标记。

12_常量

什么是常量

​ 常量的值一旦确定,在程序运行过程中不允许改变。

常量的分类

字符串常量:使用双引号 "" 括起来的0到多个字符。 	"java" ,"黑马程序员" , "我"
    
字符常量:使用单引号 '' 括起来的单个字符。 'a' , '0' ,'我'
    
整数常量:正负整数  10  -20
    
小数常量:带小数点的数字  -3.14   5.12

布尔常量:表示真或假,只有true或false两个值。

空常量:值为null,不能使用输出语句直接输出。 (引用类型的默认值)

案例代码

public class ChangLiang1{
	public static void main(String[] args){        
		// 字符串常量:使用双引号 "" 括起来的【0到多个字符】。 
		System.out.println("java");
		System.out.println("我");
        System.out.println("");
		System.out.println("  ");
		System.out.println("-------------");
    
		// 字符常量:使用单引号 '' 括起来的【单个字符】。 
		System.out.println('A');
		System.out.println('我');
        //System.out.println('');编译报错,字符常量必须是单个字符
		System.out.println(' '); //空格字符
		//System.out.println('  '); 编译报错,字符常量必须是单个字符
		System.out.println("-------------");
	
		// 整数常量:正负整数  
		System.out.println(10);
		System.out.println(-10);
	
		// 小数常量:带小数点的数字  
		System.out.println(-10.9);
		System.out.println(5.12);
		
		// 布尔常量:表示真或假,只有true或false两个值。
		System.out.println(true);
		System.out.println(false);

		// 空常量:值为null,不能使用输出语句直接输出。学习数组的时候会讲解
		//System.out.println(null);  //编译错误,不能使用输出语句直接输出空常量	
	}
}
/*
	需求:使用常量在屏幕上输出一个学生的信息,包含姓名、性别、年龄、身高、地址。
*/
public class ChangLiang2{
	public static void main(String[] args){
		//姓名  :字符串常量
		System.out.println("林志玲");
		//性别 :字符常量
		System.out.println('女');
		//年龄 : 整数常量
		System.out.println(32);
		//身高 : 小数常量
		System.out.println(172.5);
		//地址 :字符串常量
		System.out.println("中国香港");
	}
}

13_java的数据类型

计算机内存

  • 位(bit) : 计算机表示数据的最小单位 , 通常用小写字母 b 表示.

  • 字节(byte) : 计算机存储数据的基本单位 , 通常用大写字母 B 表示.

  • 常用储存单位的换算:

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

    ​ 1KB = 1024B

    ​ 1MB = 1024KB

    ​ 1GB = 1024MB

    ​ 1TB = 1024GB

java的数据类型

  • Java是一个强类型语言,Java中的数据必须明确数据类型。
  • Java中的数据类型包括基本数据类型和引用数据类型两种。
    • 基本数据类型:4型8种
    • 引用数据类型:数组,对象

基本数据类型(4型8种)

  • 整数默认是int类型,浮点数默认是double类型。
  • Java基础Day01_第11张图片
【练习题】下面哪些是Java中的基本数据类型?( ADE  )
基本类型都是关键字:单词都是小写
A.byte
B.Byte  //byte的包装类	
C.String  //字符串,引用类型 
D.char   
E.long

14_变量的定义

变量的概述

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

​ 从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化。

变量的格式

数据类型  变量名 = 变量值;

练习案例

/*
	需求:使用变量定义并输出一个学生的信息,包含姓名、性别、年龄、身高、地址。
*/
public class BianLiangTest{
	public static void main(String[] args){
		//姓名
		String name = "林志玲";
		System.out.println(name);
		
		//性别、
		char xingbie = '女';
		System.out.println(xingbie);
		
		//年龄、
		int age = 32;
		System.out.println(age);
		//身高、
		double height = 172.5;
		System.out.println(height);
		
		//地址
		
		String address = "中国香港";
		System.out.println(address);
	}
}

变量定义的其他格式

1、变量可以先定义,再赋值
	数据类型  变量名;
	变量名 = 初始化值;
	
2、一行代码上可以同时定义多个变量。(不推荐)
	数据类型 变量名1 = 初始化值, 变量名2 = 初始化值;
public class BianLiangDemo{

	public static void main(String[] args){
		//数据类型 变量名  = 初始化值;
		// int a = 10;
		// System.out.println(a);

		//变量可以先定义,再赋值
		// int a;
		// a = 10;
        // System.out.println(a);
		
		//一行代码上可以同时定义多个变量。(不推荐)
		int a = 10, b = 20 ;
		System.out.println(a);
		System.out.println(b);	
	}
}

15_变量使用的注意事项

1、在同一对大括号中,变量名不能重复。
2、没有初始化的变量不能直接使用。
3、定义long类型变量时,如果超出int的范围,需要加L或者l,建议加L。
4、定义float类型的时候需要在数字后面加F或者f,建议加F。

案例代码

public class BianLiangDemo3{
    public static void main(String[] args){
        int a = 10;
        //byte a = 20; //编译报错,变量名重复
        
        int b;
        //System.out.println(b); //编译报错,变量b没有初始化,不能直接使用
        
        //long c = 10000000000; //编译报错,变量c的值超过了int的范围
        long c = 10000000000L; //建议在long类型值后面加上L,避免数值过大而报错
        
        //float f = 3.14; //编译报错,小数默认是double类型
        float f = 3.14F; //float类型的变量值需要加上F或者f,建议加F
        
    }
}

16_标识符

标识符的作用

​ 给包,类,方法,变量起名的符号。

标识符组成规则

​ 大小写字母、数字、下划线_、美元符$ 、中文(不推荐)

​ 注意事项:

​ 不能是数字开头

​ 不能是关键字

​ 区分大小写

标识符命名约定

  • 小驼峰式命名:变量名、方法名

    ​ 第一个单词首字母小写,从第二个单词开始每个单词的首字母大写。(number , maxValue)

  • 大驼峰式命名:类名

    ​ 每个单词的首字母都大写。(String, ArrayList)

  • 建议:标识符的起名尽量做到见名知意。

【练习题】下列不可作为java语言变量名的是( DEF  )
    //大小写字母,数字, 下划线 ,美元符
    //不能是数字开头,不能是关键字,区分大小写
A、a1 
B、$1 
C、_1  
D、5a  //不能是数字开头
E、num@  //特殊符号只能是下划线 ,美元符,@不符合规范
F、class  //不能是关键字,但是class是关键字
G、String  //可以的,但是及其不建议

17_类型转换

自动类型转换

  • 从【范围小】的类型到【范围大】类型的转换,系统会自动进行类型提升,称为自动类型转换。
    Java基础Day01_第12张图片

强制类型转换

  • 从【范围大】的类型到【范围小】的类型的转换,需要进行强制类型转换。

  • 格式:

    ​ 目标数据类型 变量名 = (目标数据类型)变量或常量;

  • 弊端:

    ​ 会造成数据精度丢失。尽量少用强制转换。

案例代码

//类型转换案例代码
public class ChangeDemo{
    public static void main(String[]  args){
        // 自动类型转换
        double d = 10; //10默认是int类型,转为较大范围的double类型,属于自动类型转换。
        
        byte b = 15;
        int a = b; //byte类型转int类型,属于自动类型提升。
        
        long num1 = 19L;  
        float f = num1;  //long类型变量赋值给float类型变量,属于自动类型转换 
        
         // 强制类型转换       
        //int a2 = 88.8; //编译报错,88.8默认是double,8个字节,int占4个字节
        int a2 = (int)88.8;
        System.out.println(a2);  //打印结果为88,精度丢失
        
        int a3 = 130;
        byte b3 = (byte)a3; 
        System.out.println(b3);
    }
}
【多选题】以下关于数据类型的转换,说法正确的是(A C)
A:long num = 100L;
   float f = num;
   System.out.println(f); 
   以上代码能正常编译运行,并输出100.0

B:int类型的数据转为double类型,需要强制转换。 //错误的,int转double ,属于自动类型转换,不需要强转

C:int类型转成short砍掉2个字节,可能造成数据丢失。//int占4字节,short占2字节,强转,会造成精度丢失

D:byte b = 130; //编译错误,130超过了byte的范围  -128~127
   System.out.println(b);
   以上代码能正常编译运行,并输出130

学习目标

1、能够说出JDK,JRE,JVM各自的作用和关系
2、能够完成HelloWorld案例的编写及运行
3、能够使用注释对程序进行说明
4、能够知道关键字的特点
5、能够知道常量的分类
6、能够说出8种基本数据类型
7、能够完成变量的定义及输出
8、能够知道类型转换的格式和顺序

需要思维导图笔记的同学可以找我要哦!

jdk-11_windows-x64_bin
Notepad++

你可能感兴趣的:(JAVA)