• 20165320 毕业设计 第二周总结


    20165320 毕业设计 第二周总结

    任务及完成情况

    周一 周二 周三 周四 周五 周六 周天
    Java基础知识回顾
    Java基础知识回顾
    Java基础知识回顾
    撰写开题报告
    撰写开题报告
    文献翻译
    总结
    已完成
    已完成
    已完成
    已完成
    已完成
    已完成
    已完成

    内容总结

    一、Java内存划分的五个部分

    • 栈:存放方法中的局部变量(方法的参数,方法内部的变量),方法的运行需要在栈中进行。

    • 堆:new出来的东西(变量、对象)都放在堆中,堆中数据都有一个16进制的地址值,并且有一个默认值。

      • 整数默认为0
      • 浮点数默认为0.0
      • 字符默认为'u0000'
      • 布尔型默认为false
      • 引用类型默认为null
    • 方法区:存储.class信息,包含方法信息。

    • 本地方法栈:与操作系统有关。

    • 寄存器:与CPU有关。

    • 一个简单数组实例:

    • 一个简单对象实例:

    二、封装性

    • 隐藏一些细节信息,对于外界不可见,体现:方法与关键字private,同时对一些属性进行合理性的保护。

    • 针对Private修饰的成员变量,应该定义一对Get对Set方法进行访问。其中对于Boolean型,get方法应写成isXxx形式

    • 简单实例如下:

        class person{
            private int age;
            public void Setage(int age){
                this.age = age;
            }
            public void Getage(){
                return age;
            }
        }
      

    三、一个标准的类

    • 为所有的成员变量使用Private修饰。

    • 为每一个成员变量编写Get与Set方法。

    • 编写一个无参构造方法。

    • 编写一个全参构造方法。

    • 简单实例如下:

        class person{
            private int age;
            public person(){}
            public person(int age){
                this.age = age;
            }
        }
      

    四、Arrylist<>简单使用

    • Arrylist<>为大小可变的数组,<>中代表的是泛型,只能是引用类型,不能是基本类型(byte、short、int、long、float、double、char、boolean),如有必要,可以使用包装类(Byte、Short、Integer、Long、Float、Double、Character、Boolean)。 从JDK1.5开始,支持自动装箱与拆箱。

    • 常用方法:

      • 从集合中获取元素: public E get (int dex) //参数是索引编号
      • 从集合中添加元素: public boolean add (E e) //参数是泛型
      • 从集合中删除元素: public E remove (int dex) //参数是泛型
      • 获取集合长度: public int size ()
    • 简单例子:

        public class Main {
            public static void main(String[] args) {
        ArrayList<String > qhb1653 = new ArrayList<>();
      
        //向全华班中添加人员
      
        boolean success = qhb1653.add("曹大学姐");
        qhb1653.add("李门头");
        qhb1653.add("孙WJ");
        qhb1653.add("勺王申");
      
        //打印集合中的数据
        System.out.println("组成人员:"+qhb1653);
      
        //获取集合数据
        String leader = qhb1653.get(1);
        System.out.println("头头是"+leader);
      
        //删除GK No.1
        String nb =qhb1653.remove(2);
        System.out.println("被删了的人是:"+nb);
      
        //获取集合长度
        int num = qhb1653.size();
        System.out.println("全华班的人数为:"+(num+1));
            }
        }
      

    五、字符串 String

    • 字符串的内容永不改变,可以共享使用,效果相当于char[]型字符数组,但底层原理是byte[]字节数组。

    • 常见四种构造方法:

      • 创建空白数组,内容为空: public String ()
      • 根据字符数组的内容,创建对应字符串:public String (char[] array)
      • 根据字节数组内容,创建对应字符串: public String (byte[] array)
      • 直接String:String str = " " PS:直接双引号的字符串,在字符串常量池中。
      • 简单实例:
    • 对于字符串这种引用类型来说,==比较的是地址值,内容的比较需要用equals。

        String str1 = "ABC";
        char [] charArray = {'A','B,'C'};
        String str2 = new String (charArray);
        System.out.println(str1.equals(str2);
      
    • 常用方法:

      • 获取字符串长度: public int length()
      • 将当前字符串与参数字符串拼接:public String concat (String str)
      • 获取指定索引位置的单个字符:public char charAt (int index)
      • 查找参数字符串在本字符串中首次出现的索引位置:
        public int indexOf(String str)
      • 截取从参数位置到字符串末尾,返回新字符串:public String substring(int index)
      • 截取从begin开始到end结束的字符串:public String substring(int begin,int end)
      • 字符串内容替换:public String replace(old String , new String)
    • 简单例子:

    六、关键字

    • Static关键字:如果一个成员变量/方法使用了static关键字,这个变量/方法不再属于对象,而是属于类,多个对象共享,静态方法可以直接使用类名调用。

      • 注意事项:静态中不能访问非静态,也不能使用this关键字,根据类名访问静态成员变量时,与对象无关。
    • 简单实例:

    七:继承性

    • 继承主要解决的是共性抽取,子类可以有父类的内容,还可以拥有自己专有的内容。

    • 格式:public class A extends B {}

    • 访问重名成员变量特点:

      • 直接通过子类对象访问成员变量,优先用子类,没有的话向上找。
      • 间接通过成员方法访问成员变量,方法在哪个类里面,优先用哪个类中的成员变量,没有向上找。
    • 创建子类对象,访问成员方法时,对象是谁,优先用谁,没有向上找。

    • 重写:@Overri 方法名称与参数列表都一样。

      • 子类方法的返回值必须小于等于父类方法的返回值范围。
      • 子类方法的权限必须大于等于父类方法的权限修饰符。
    • 子类构造方法中有一个默认的super()调用,先调用父类构造,再执行子类构造。

    • super 与 this内存图

    • Java继承的特点:

      • 一个子类的直接父类只能有唯一一个。

      • 父类可以多级继承,有多个子类。

    八:抽象类与抽象方法

    • 抽象方法:加上abstract关键字,去掉大括号,方法体内容不确定。

    • 抽象类:抽象方法所在的类必须是抽象类。

    • 使用方法:

      • 不能直接创建抽象类对象,必须用子类继承抽象父类。
      • 子类必须覆盖重写父类抽象方法,去掉抽象方法的abstract关键字。
      • 创建子类对象使用。
    • 简单实例:

        public abstract class LaoBa{
            public abstract void eat();
        }
        
        public class sxz extends LaoBa{
            public void eat(){
                System.out.println("奥利给,干了兄弟们");
            }
        }
      

    九、接口

    • 接口是多个类的公共规范,一种引用数据类型,最重要的内容就是其中的抽象方法。实现类必须覆盖重写所有抽象方法。

    • 格式如下:

        public interface 接口名称 {
            //接口内容
        }
        
        public class 实现类名 implements 接口名{
           // 实现接口内容
        }
      
    • 接口当中的抽象方法,修饰符默认是两个固定的关键字:[public] [abstract] 返回值 方法名 (参数列表) {方法体}

    • 默认方法可以解决接口升级的问题:[public] [default] 返回值 方法名 (参数列表) {方法体}

    • 静态方法:public static 方法名 (参数列表) {方法体}

    • 私有方法:抽取共用方法,解决两个默认方法/静态方法之间重复代码的问题。private [static] 返回值 方法名 (参数列表) {方法体} jdk9之后只有接口本身才能用,不能被实现类调用。

    • 接口当中的常量,必须进行明确的赋值,并且常量名完全大写默认用 [public] [static] [final] 返回值 方法名 (参数列表) {方法体}修饰。

    • 接口不能有构造方法,也没有静态代码块。

    十、多态(这一部分目前接触的比较少)

    • 多态分为编译时多态与运行时多态,第一个通过方法重载实现,第二个通过方法覆盖。

    • 通过类名访问成员变量时,看等号左边。

    • 通过成员方法访问成员变量,看该方法属于谁。

    • 口诀:访问变量都看左边,方法运行时看右边。

    待解决的问题&下周的计划

    • 待解决的问题:学习效率较低,注意力不集中,急待改善,以前学过的很多知识,很久不用,都忘了....
    • 下周的计划:完成开题报告答辩与Java基础知识的回顾,开始进入Android应用开发基础的学习。
  • 相关阅读:
    I第五章:(1)Hystrix 断路器
    第四章—Netty:(1)Netty概述
    I第四章:(1)Feign 负载均衡
    第三章—Java NIO编程:(9)AIO及三种IO对比
    I第六章:(1)Zuul路由网关
    第五章—Netty高性能架构设计:(2)Reactor线程模式
    Pytest动态为用例添加mark标记
    Postman使用简介
    Fiddler抓包使用简介
    使用正则解析Python赋值及函数调用表达式
  • 原文地址:https://www.cnblogs.com/Gst-Paul/p/12445918.html
Copyright © 2020-2023  润新知