1.1java语言概述

1.JDK,JRE,JVM三者之间的关系是什么?以及JDK和JRE分别包含的主要结构有那些?
JDK = JRE + JAVA的开发工具(javac.exe,java.exe,javadoc.exe)
JRD = JVM + JAVA核心类库

2.为什么要配置path环境变量?如何配置?
JAVA_HOME = java安装目录中bin的上一层目录
path = %JAVA_HOME%\bin

3.常用的几个命令行操作有哪些?
md创建
rd删除
del删文件
cd..退回上一层
cd/退回根目录

4.创建如下的类,使得运行可以输出
创建java文件:ChairMan.java

public class ChairMan{
    public static void main(String[] args){
        System.out.println("姓名:Freda");//       **加//是换行的意思**
        System.out.println();
        System.out.println("性别:女");
    }
}

编译和运行:
javac ChairMan.java(和文件名一样)
java ChairMan(和public的类名一样)

5.常识:

  • 软件:一些列按照特定顺序组织的计算机数据和指令的集合,分为系统软件:windows,mac;应用软件:word
  • 人机交互方式:图形化界面 、 命令行方式
  • 应用程序 = 算法 + 数据结构
  • 计算机发展史:
    第一代:机器语言
    第二代:汇编语言
    第三代:高级语言
    <面向过程:C,
    <面向对象:JAVA,ES6,Python
  • JAVA语言应用的领域:
    <JAVA WEB开发:后台开发
    <大数据开发
    <Android应用程序开发:客户端开发
  • JAVA语言特点
    <面向对象性:
    两个要素:类、对象
    三个特征:封装、继承、多态
    <健壮性:去除了C语言中的指针、自动的垃圾回收机制,但仍然会出现内存泄漏和溢出
    <跨平台性:write once, run anywhere:一次编译,到处运行---->功劳归功于JVM

    1.2 java基本语法

1.标识符的使用
1)标识符:自己起名字的地方都叫标识符
比如:类名、变量名、方法名、接口名、包名等……
2)标识符的命名规则:

  • 英文字母大小写,0-9,_或$
  • 数字不能开头
  • 区分大小写,不包含空格
  • 不能是关键字(专门意义、小写)或保留字(goto,const)
    3)JAVA中的名称命名规范:(不遵守也能通过)
    包名:多单词组成时所有字母小写
    类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
    常量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
    常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

2.变量
1)变量的定义:数据类型 变量名 = 变量值
2)说明

  • 变量要先声明后使用
  • 变量要定义在作用域内,作用域{}内才有效

3.数据类型
1)基本数据类型

  • 整型:byte(1字节=8bit,范围:-128-127) \ short(2字节) \ int(4字节) \long(8字节)
  • 浮点型: 单精度float(4字节) \ 双精度double(8字节)
  • 字符型: char(1字符 = 2字节)
  • 布尔型: boolean
    2)引用数据类型:
  • 类(class)
  • 接口(interface)
  • 数组(array)
    3)表示形式
    整型:
  • 声明long型变量,必须以1或L结尾
    long l1 = 34343249247L;
  • 最常用int
    浮点型:
  • 声明float变量,变量要以f或F结尾
    float f1 = 12.3F
  • 通常使用double类型
    字符型:
  • 定义char型变量,通常使用一堆''
    char c1 = 'a';
    char c2 = '中'
    System.out.println(c1);
    System.out.println(c2);
  • 表示方式:1、声明一个字符 2、转义字符3、直接使用Unicode值来表示字符型常量
    char c3 = '\n';//换行符
    char c4 = '\t';//制表符(tab)
    System.out.print("hi" + c3);//print就是不换行
    System.out.println("world");
    char c5 = '\u00434';
    System.out.println(c5);//C
    布尔型:
    boolean getted = true;
    if(getted){
    Systemout.println("已经获取"消息"了")
    3)数据类型的相互运算
    自动类型提升:
    当容量小的数据类型的变量和容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
    byte、chart、short --> int --> long --> float --> double
  • 特别的:当byte、chart、short三种类型做运算(包括和同类型做运算),结果都必须是int型*
    byte b1 = 2;
    int i1 = 129;
    int i2 = b1 + i1;
    long l1 = b1 + i1;
    float f = b1 + i1;//131.0
    char c1 = 'a';//97
    int i3 = 10;
    int i4 = c1 + i3;
    System.out.println(i4);//107
    强制类型转换:自动类型提升运算的逆运算:强转符+精度损失
    claa VariableTest {
    public static void main(String[] args) {
    

double d1 = 12.9;
int i1 = (int)d1;//截断操作(损失精度)
System.out.println(i1);

//没有精度损失
long l1 = 123
short s2 = (short)l1;
//精度损失
int i2 = 128;
byte b = (byte)i2;
System.out.println(b);//-128

注意点:
1.编码情况:
long l = 123123;//结尾没l(123123L),没报错,是因为自动转成int了
long l1 = 12312423423434;//报错,过大的整数,要加L
float f1 = 12.3F;//一定要加,大的float不能往小的double转

2.//整型常量,默认类型为int型
  //浮点型常量:默认类型为double型
byte b =12;
byte b1 = b+1;//报错
byte b2 = b+12.3;//报错
4)String类型变量的使用
1.String属于引用数据类型,翻译为:字符串
2.声明String类型变量时,使用一对""
3.String可以和8种基本数据类型(包括布尔)变量做运算,且运算只能是连接运算(拼接):+
4.运算结果仍然是String类型
//练习1
char c = 'a';//97
int num = 10;
String str = 'Hello';
System.outprintln(c + num + str);//107Hello
System.outprintln(c + str + num );//aHello10
//练习2
System.outprintln('*' + '\t' + '*');//93-->''里面是char,做运算对应一个ascma值
System.outprintln('*' + "\t" + '*');//*    *-->""里面是String

(5)进制
所有数字在计算机底层都以二进制形式存在。
对于整数,有四种表示方式:
二进制(binary):0,1 ,满2进1.以0b或0B开头。
十进制(decimal):0-9 ,满10进1。
八进制(octal):0-7 ,满8进1. 以数字0开头表示。
十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。如:0x21AF +1= 0X21B0

class BinaryTest{
    public static void main(String[] args){

        int num1 = 0b110;
        int num2 = 110;
        int num3 = 0127;
        int num4 = 0x110A;

        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);
        System.out.println("num3 = " + num3);
        System.out.println("num4 = " + num4);
    }
}
最后输出都为十进制

练习题【数组】

int[] arr = new int[4];//动态初始化
Sring[] arr1 = new String[]{'tom','jerry','jim'};//静态初始化
or 
Sring[] arr1 = {'tom','jerry','jim'};//静态初始化

二维数组:
int[][] arr = new int[4][3];//动态初始化
int[][] arr1 = new int[5][];//动态初始化
int[][] arr3 = new int[][]{{1,2,3},{1,2},{4,5}};//静态初始化

不同类型的以为数组元素的默认初始化值:
整数型:0
浮点型:0.0
char:0
boolean:false
引用数据类型:null


生成随机数:[10,99]
int[] arr = new int[10[;
for (int i = 0li<arr.length; i++){
    arr[i] = (int)(Math.random() * (99 - 10 +1) +10);
}
class Student{
    int numnber;
    int