JAVA语言入门详细知识点

//其中可能包含错误,如若发现可指出,以便修改文。

一.前言,入门,常量,变量
    1. Java是高级语言
    2. 1,0 bit 比特
        1 Byte =8 bit
        GB TB PB EB ZB
    3. 10进制转化成2进制
    4. 10进制转化成二进制 除二取余
    5. 二进制转换成10进制 8421
    6. 字节 计算机最小存储单位 8bit 一字节 byte B
    7. DOS 早期操作系统

    8. 命令:
            盘:    盘符切换
            dir     查看当前文件夹
            cd      进入文件夹  cd 文件夹名称  cd 文件夹1\文件夹2\文件夹3
            cd..    退出文件夹
            cd\     退出到磁盘根目录
            cls     清屏
            exit    退出

    9.JVM       虚拟机
    10.跨平台   运行在所有操作系统上 不同版本JVM
    11.JRE      运行环境 JVM + 运行时核心类
    12.JDK      开发工具包
    13.JDK安装  目录自定义  安装路径禁中文和空格

    14.JAVA_HOME  
            1.系统变量-新建-JAVA_HOME-bin路径前的路径
            2.系统变量-path-%JAVA_HOME%\bin
            dos 输入Javac

    15.javac 编译器 java解释器
    16.javac HelloWorld.java 产生字节码文件
    17.java HelloWorld 运行字节码文件
    18. 编译    翻译成class文件
        运行    运行class文件
    19.//单行注释 /* */多行注释
    20.关键字 定义好的单词 小写 public calss static void
    21.标识符 自定义
    22.命名 $ _ 禁关键字
    23.类名大驼峰 方法名小驼峰 变量名小写
    24. 字符常量'' 
        字符串常量""    可以为空
        空常量 null     不能打印
    25.基本数据类型 整数,浮点数,字符,布尔
       引用数据类型 类,数组,接口,Lambda,字符串

    26. byte  -128 - 127
        short -3万 - 3万
        int   -2的31次 - 2的31次
        long  -2的63次 - 2的63次  9后面跟着18个0多
        char   0-6万
    27.long L   float F
    28.数据范围与字节数无关,float 4个字节 long 8个字节 float数据范围比long广

二.数据类型转换,运算符,方法入门
    1.int + byte 自动转换 取值范围小的类型 提升 为取值范围大的类型
    2.byte,short,char -->int-->long-->float-->double
    3.强制类型转换 取值范围大的类型 提升 为取值范围小的类型
    4.数据类型 变量名 =(数据类型)被转数据值
    5.int-->short 砍掉两字节 数据丢失
    6.ASCII十进制

    7.a++ ++a 独立运算一样 
        设a=1;
        b=a++;先赋值再加 1
        或
        b=++a;先加再赋值 2

    8.>=  <=        等于在后面
    9.&&  短路      左false右边不计算
    10.三元运算符 数据类型 变量名 = 布尔表达式?结果1(true):结果2(false); 不能单独使用或常量

    11.方法
        修饰符 返回值类型 方法名(参数列表){
            return ;
        }

    12:修饰符 public static
    13:方法:类里方法外 一个类

    14.s=s+1 两次运算 +=运算一次 强制转换
        short s = 1;
        s+=1;//s是2
        
    15. byte+byte=int+int-->int
        byte+short=int+int-->int

    16.Unicode码表:0-127与ASCII一样,128开始更多字符
    17.'0'-48  'A'-65  'a'-97
    18.一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。
    19.++a<100  a的值不变

    20.
    对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,
    那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。

    byte num1 = /*(byte)*/ 30; 
    char zifu = /*(char)*/ 65; A

三.流程控制语句
    1.
    switch(表达式){
        case 常量值1:
            语句;
            break;
        default:
            语句;
            break;
    }
    表达式的类型 byte short int char enum
    不写break会穿透不判断case直到遇到break;

    2.continue结束本次循环开启下次循环

四.IDEA,方法
    1.Project新建项目 Project>Module>Package
    2.show in Explorer查看包的目录
    3.src里建包(文件夹)
    4.包里创class
    5. .out class文件
    6. .src java文件
    7. .idea .iml IDEA自己使用
    8.Ctrl+Y 删除所在行
    9.Ctrl+Alt+L 格式化代码
    10.Ctrl+Shift+/ 选中代码多行注释
    11.Alt+Shift+上下箭头 移动本行代码

    12.
    File->setting->keymap->main menu->code 修改快捷键
    remove 移除
    Add Keyboard 修改快捷键

    13.file-close project 不关闭IDEA而关闭项目

    14.实参:传入的变量  形参:参数列表的
    15.输出语句中可调用返回值不是void的方法
    16.集成开发环境 提高效率
    17.命名不规范才会出现绿色波浪线 不符合小驼峰要求
五.数组
    1.数据类型[]数组名=new 数据类型[长度];
    2.数据类型[]数组名=new 数据类型[长度]{元素1,元素2};
    3.数据类型[]数组名={元素1,元素2};
    4. 数组名.length  长度
    5.内存 临时存储区域

    6.
    Java内存:
    方法区 class文件 
    堆内存 存储对象或数组 new 有16进制的地址值
    方法栈 方法运行时使用的内存 存放局部变量-超出作用域消失
    本地方法栈:与操作系统有关
    寄存器:与CPU有关

    7.  静态初始化:内容
        动态初始化:长度

    8.动态初始化可拆 静态初始化不可拆成两步

    9.
    动态初始化默认值
    整数 0
    浮点 0.0
    字符 \u0000
    布尔 false
    引用 null

   10.数据类型[]数组A=数组B

   11.所有引用类型可赋值为null,数组必须new才能使用元素

   12.new过的数组可以再new 覆盖

六.类与对象,封装,构造方法

    1.类的定义:
        public class 类名{

        }

    2.成员变量:方法外
    3.成员方法:没static
    4.类名 对象名 = new 类名();
    5.对象名.成员变量
    6.封装:隐藏属性用get,set访问 private
    7.private 最小权限
    8.this 当前类的对象
    9.构造方法 对象被创建,初始化对象
    10.无参构造方法-操作set,get 布尔类型get变is

    11. Student s1= new Student(); 无参构造函数 可以用set添加内容
        Student s2 =new Student("赵丽颖",18) 有参构造函数

    12.Arrays.toString(数组名)方法 格式[元素1, 元素2]
    13.方法是一种封装 细节信息隐藏

七.Scanner类,Random类,ArrayList类

    1.import 包名.类名
    2.Scanner sc =new Scanner(System.in);

    3.  匿名对象:没有变量名的对象 只能使用一次
        new  Scanner(System.in);
        可以作为参数 实参:new  Scanner(System.in);
                    形参:Scanner sc
                    返回值:new  Scanner(System.in);

    4.  Random r =new Random(); 里面没有值
        r.nextInt(10)   0-9之间的值
        r.nextInt(10)+1 1-10之间的值

    5.Student[] students = new Student[3] 学生数组 再创造学生对象
    6.Element 元素

    7.  ArrayList<String> list =new ArrayList<>();
        list.add("曹操"); 添加到尾部 返回布尔类型
        public E remove(int index) 返回被删除的元素
        public E get(int index) 返回获取的元素
        public int size();
        基本类型包装类:
        Character
        Integer
        其他开头大写
        打印array[2]得到地址值
        返回值是ArrayList的命名

八:String类、static、Arrays类、Math类
1.  字符串值在创建后就不能改变 不然指向一个新的创建出来的字符串 因为变量保存的是地址值
    String可以共享 内存中完全一样的String就是一个
    String底层靠字符数组实现

2.  equals
    equalsIgnoreCase    比较相等 忽略大小写
    length
    concat              连接到字符串末尾
    charAt              返回索引处的字符
    indexOf             返回指定字符串第一次出现在字符串内的索引值
    substring           从beginindex开始到字符串末尾/从[beginindex,endindex)
    tocharArray         将字符串更换成字符数组 ('a','b','c')    数组
    getBytes            将字符串更换成字节数组 (97,98,99)       数组  
    replace             第一次字符串用第二个字符串替代
    split               分割                                  数组
    concat              拼接字符


3.Object是一种引用类型 任意对象

4.创建数组
     char[]charArray={'A','B','C'};
     byte[]byteArray={97,98,99};
     String str3=new String(charArray);

5."abc".equals(str5)推荐字符串在前面,不然空指针异常

5.对于引用类型来说,==是进行【地址值】的比较。
6.字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。
7.split .是"\\."  空格就是" "
8.static修饰变量属于该类每个对象 任何对象都可以改变变量值
9.static 数据类型 变量名
10.静态方法和成员方法都可以直接访问类变量或静态方法
11.静态方法不能直接访问普通成员变量或成员方法
12.类方法=静态方法:static 用类名来调用不需要创建类对象
13.static修饰的内容:只加载一次

14.
    Array所有类都静态方法
    .sort升序排序(字符,字符串也可)

15.Math类
    abs     绝对值
    ceil    大于等于
    floor   小于等于
    round   四舍五入

16.this代表当前对象

17.在IDEA需要偷懒


九.继承,super,this,抽象类

    1.父类=超类=基类
    2.父类非私有属性和方法 子类可以直接使用
    3.extend继承
    4.成员变量父类与子类重名,子类会先访问到子类成员变量,访问父类需要使用super
    5.私有 private 使用get/set访问到
    6.如果子类的成员方法与父类完全一致,就会覆盖重写
    7.成员方法:没static,调用成员方法需要new对象
    8.子类无法继承父类的构造方法。子类用super才能使用父类的构造方法。
    9.Java支持单继承和多层继承
    10.super和this不能同时出现

    11.
    抽象方法 必须在抽象类里面
    修饰符 abstract 返回值类型 方法体(参数列表)
    abstract class 类名字
    抽象类可以有构造方法 

    12.方法是子类的优先于子类,没有再向上找

    13.成员变量和局部变量名字相同,方法里优先使用局部变量
    14.new的是子类对象优先使用子类方法。(父类子类重名方法)
 
    15.@Override 检测是不是有效的覆盖重写

    16.子类方法的权限必须大于父类方法
    public>protected>(default)>private  
                    留空什么都不写


    17.子类的构造方法才能调用父类的构造方法。
    18.子类的无参构造函数无法调用父类的有参构造函数
    19.构造方法的作用是new对象时候的。
    20.子类调用父类的构造方法,必须是第一个语句而且不能调用多次
    21.this会是此类成员变量而不是最近的局部变量
    22.抽象类不用实现接口所有方法,其余方法可以交给子类来完成

    23.抽象类继承别的抽象类可以不实现抽象方法,也可以实现抽象方法
    
    24.子类继承父类的有参构造 需要super()里面传入参数
    25.super.方法名 调用父类的该方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值