zoukankan      html  css  js  c++  java
  • Java学习笔记——基础篇

    Tips1:eclipse中会经常用到System.out.println方法,可以先输入syso,然后eclipse就会自动联想出这个语句了!!

    学习笔记:

    *包、权限控制

          1、包(package)概念的引入是为了防止类名冲突。package语句要作为java源文件的第一条语句。

          2、两个类在同一个包中,可以相互调用;两个类在不同的包中,若想引用则必须通过import语句导入,格式为:import 包名.子包名.类名。

      3、如果在程序中同时导入了两个包的同类名,则在使用时必须明确的写出完整的“包.类名”,如:access.a.Demo demo1=new access.a.Demo()

      4、private类型的属性和方法,只能在本类中使用;protected类型的属性和方法,只能在本包中使用;public类型的属性和方法在任何地方均可使用。

    *继承

      1、继承修饰符与访问限制关系表

          

      如,protected修饰的成员可以被子类、同一个包或者类内部访问。

      2、父类private类型的属性和方法不能被子类继承,父类的构造方法也不能被子类继承。

      3、子类对象实例化时,先调用父类的构造方法,再调用子类本身的构造方法。若父类的构造方法带参数,那么子类在构造方法中要显示地调用super方法(写在首行)。

        4、Java中只允许单继承,即一个类只能继承一个父类。

      5、方法重写(Override):子类中定义了父类中同名的方法。重写的方法必须和被重写的方法具有相同的方法名、参数列表和返回类型

      6、子类重写的方法不能拥有比父类方法更加严格的访问控制权限。静态方法(static修饰)不能被重写,被private修饰的方法不能被重写,如果子类重写编译器并不会报错,但是如果发生向上转型仍然调用父类方法。

      7、初始化顺序:父类静态成员>子类静态成员>父类中的成员(按声明顺序)>父类的构造方法>子类中的成员(按声明顺序)>子类的构造方法。

    *多态性

      1、方法重载(Overloading):在同一个类中定了多个同名的方法,但是方法的参数个数、参数类型和返回值类型可能不同,调用时通过传参的类型和个数来决定具体使用哪个方法。

      2、重载方法的方法名要相同,参数类型或参数个数不同,返回值类型可以相同也可以不相同,无法以返回型别作为重载函数的区分标准。

      3、向上转型upcasting:将子类对象赋值给父类对象,向上转型损失了子类新扩展的属性和方法,只剩下父类中声明过的属性和方法;如果对象发生了向上转型关系后,那么调用的方法一定是被子类覆盖掉过的方法。

      4、向下转型downward cast:将父类对象赋值给子类对象。向下转型的前提条件是:必须是曾经做过向上转型的对象才能再向下转型。进行向下转型时必须要明确地指出要转型的子类类型:子类 子类对象=(子类)父类对象。

      5、instanceof操作符:判断一个对象到底是哪个类的实例。用法:对象 instanceof 类,结果返回boolean类型。子类对象既是子类的一个实例又是父类的一个实例

    *Object类和equals方法

      1、Java所有的类都有一个公共的父类Object,Object类中包含下面几个主要方法:

        public String toString() //对象输出时调用,默认输出:类名@hashcode,可以重载此方法

        public boolean equals(Object obj) //对象比较

        public int hashCode() //获取对象的hash码

      2、equals方法默认比较的是对象在内存中存放的地址,但如果是自定义的类,可根据需要重写equals方法;  

         ==方法对于基本的数据类型,它比较的是值;而对于复合数据类型,它比较的是对象的地址。

      3、特别指出的是,利用equals比较八大包装类对象(Byte, Boolean, Short, Charecter, Integer, Long, Float, Double)和String类(因为该类已重写了equals和hashcode方法)对象时,默认比较的是值,在比较其它自定义对象时都是比较的引用地址

    *Final关键字

      1、final修饰的变量为常量,值不能被修改;final修饰的方法不能被子类重写;final修饰的类不能有子类,即不能被继承(但是该类中的属性和方法仍可以改变)。

      2、常量在声明时就需要为其赋值,如果未赋值就必须在每个构造方法中为其赋值。

      3、final修饰对象时,只是说明该对象的引用是常量,即不能再指向别的对象,但是该对象中的属性值仍然可以被修改。

      4、final static修饰的变量为全局常量,全局常量的所有单词都应该大写。

    *Random包

      1、需要导入:java.util.Random包

      2、Random()有两种构造方法:

      Random():创建一个新的随机数生成器。

      Random(long seed):使用单个 long 种子创建一个新的随机数生成器。

         3、你在创建一个Random对象的时候可以给定任意一个合法的种子数,种子数只是随机算法的起源数字,和生成的随机数的区间没有任何关系。但是种子相同的两个Random对象生成的随机数序列(不指定生成数范围)是一样的

       4、在没带参数构造函数生成的Random对象的种子缺省是当前系统时间的毫秒数。

       5、int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。

        int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在[0,n)之间均匀分布的int值。

    *容器

      1、HashMap的put方法返回值,如果放入的值存在则返回对应的值,否则返回null

  • 相关阅读:
    Chandy-Lamport_algorithm
    3 differences between Savepoints and Checkpoints in Apache Flink
    列数 行数 表数 限制
    数据收集、传输、元数据管理、作业流调度、海量数据查询引擎、数据可视化
    分析云负载均衡产品
    端口被占用通过域名的处理 把www.domain.com均衡到本机不同的端口 反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发 location 规则
    JSON Web Token
    查看开启端口的应用
    If the parts of an organization (e.g., teams, departments, or subdivisions) do not closely reflect the essential parts of the product, or if the relationship between organizations do not reflect the r
    微服务架构的理论基础
  • 原文地址:https://www.cnblogs.com/songshu120/p/4763800.html
Copyright © 2011-2022 走看看