随笔分类 - java
摘要:在java,很多时我们需要通过外部配置文件,在不修改源码的情况下,控制程序(这符合设计模式的开闭原则(ocp原则),即不修改源码,扩容功能) 于是,为了方便这种需求,java提供了反射(reflection)机制 反射 我们知道,在加载完某个类之后,堆中会产生一个相应的并且唯一的class对象,这个
阅读全文
摘要:文件流 文件在程序中是以流的形式来操作的。 流:数据在数据源文件(位于磁盘)和程序(位于内存)之间传输时经过的路径 流分为输入和输出流,这个输入输出是相对于内存而言的,即如下图 ①FileWriter一定要关闭流或者flush才能真正把数据写入到文件,因为看源码可以知道把数据写入到文件的关键方法是w
阅读全文
摘要:泛型又名参数化类型,是JDK5出现的新特性 ★★★为什么需要泛型★★★ ①可以对加入到集合的数据类型进行约束,以防加入的数据类型不合理 ②遍历集合需要进行类型转换,当集合非常多元素时,这就会效率很慢,而如果使用泛型,由于泛型要求集合装的都是同样类型的元素,在进行增强for循环时,就直接把辅助对象定义
阅读全文
摘要:经典面试题:介绍java集合类 ★★为什么要用集合★★ 当我们想要保存多个数据时,可能第一时间就是想到用数组,数组固然好用,但也有以下的缺点 (1)数组的长度在初始化时就必须定好,而且不能更改,所以扩容和删减非常麻烦,要自己写一大堆代码 (2)所有元素必须同样类型 所以,针对这些问题,java提供了
阅读全文
摘要:我们知道,基本数据类型所能保存的数据大小和精度是有范围的,那么在处理一些很大或很高精度的数据时就不能使用了 所以java提供了两个类,来处理很大的数据 BigInteger和BigDecimal 用这两个个类来处理很大的数据时,加减乘除都不能直接操作,必须调用这两个类的方法,以下分别是两个类的例子
阅读全文
摘要:我们知道,基本数据类型有八种,每种类型都有自己的一些特点,由于我们使用这些基本数据类型非常多,所以把他们各自的特点封装成方法来使用,是很有必要的,这些方法被包装到每个数据类型对应的类,以方便调用这些方法,这些类叫包装类(wrapper class),每个基本数据类型对应的包装类如下 包装类相应的继承
阅读全文
摘要:java中程序执行中不正常的情况称为异常(Expection)(逻辑错误和语法错误不是异常) 异常类Throwable(父类是object,实现了serializable)分两类 1.Error 指jvm无法解决的严重问题,如jvm内部的系统错误,资源耗尽(比如:栈溢出overstack,oom(o
阅读全文
摘要:自定义类实现枚举的步骤 1.不需要set方法,因为枚举对象值通常为只读 2.对枚举属性使用final + static,可以利用底层优化这一点,在不加载类的情况使用枚举属性 3.由于枚举对象是常量,所以要遵循常量命名规范,即全部大写 枚举类语法 eunm 类名{ //第一条语句必须是设置常量对象,如
阅读全文
摘要:局部内部类 局部内部类定义在外部类的局部位置,就是代码块和方法内,作用域也是在其定义所在的代码块和方法内。 1.它可以访问外部类的私有成员。 2.不能给局部内部类加访问修饰符,因为它的地位跟局部变量一样,局部变量是不能加访问修饰符的,同理,由于局部变量是可以加final的,所以局部内部类也可以加fi
阅读全文
摘要:假设现在有一台笔记本电脑,一个笔记本电源,一个鼠标,一个外接键盘,笔记本电源是用A的形式连接电脑,鼠标是以B的形式连接电脑,外接键盘是以C的形式连接电脑,如果这个台电脑一次只能连接其中一个,那么连电源盘时要用A槽,连接鼠标时要用B槽,连接键盘时要用C槽,这需要三个不同的槽口,倘若以后新增了其他的要连
阅读全文
摘要:主要用途:①模板设计模式、②使被重写的方法可以没有方法体,以便简洁 1.abstract类不能被实例化 2.abstract类可以有任何成员,且可以不包含abstract方法,但abstract方法必须放在abstract类中 3.abstract只能修饰类和方法,不能修饰属性和其他 4.抽象方法只
阅读全文
摘要:1.对于类而言,final可以让该类不可被继承,但可以实例化对象 2.对于方法来说,final可以让该方法不能被重写(覆盖),但可以重载 3.对于变量来说,final让变量的值不能被修改,即final变量是常量,要按照常量命名规范(字母大写,用下划线_连接),在①定义时 ②构造器中 ③代码块 这三个
阅读全文
摘要:1.在一个类里,初始化执行优先级:父类静态属性 = 父类静态代码块 > 子类静态属性 = 子类静态方法 > 父类普通语句块 = 父类普通属性 > 父类构造器 >子类普通语句块 = 子类普通属性 > 子类构造器, 2.static代码块作用是对类进行初始化,只能直接调用静态成员,随着类的加载而执行,且
阅读全文
摘要:1.main方法由java虚拟机调用 2.public权限能让jvm有权限调用,static能让jvm不必创建对象就能调用 3.main方法的字符串数组的形参是可以在执行java命令时传参数进去的,如果是cmd,格式是 java 类名 参数1,参数2,参数3........参数n,如果是ide则进行
阅读全文
摘要:== 1.==既可以判断基本类型,也可以判断引用类型。 2.当判断基本类型时,==判断双方的值是否相等。 3。当判断引用类型,==判断引用是否指向同一对象,即比较地址。 equals 在object类中,equals源码为 public boolean equals(object obj){ ret
阅读全文
摘要:instanceof用来判断对象的运行类型是不是XX类型或者XX类型的子类型,比较的两个类型需要有继承关系或者是本身,不然会报错,而且既然都没有继承关系,也不是本身,那根本不用比就知道结果了。 语法:对象 instanceof xx类 返回布尔值
阅读全文
摘要:向上转型 语法:父类 父类引用 = 子类对象 1.父类引用不能调用子类特有的方法,但是如果是重写方法,在向下转型后是可以的 public class Test { public static void main(String[] args) { A a = new B();//当给引用赋值时,是受编
阅读全文
摘要:1.子类的方法重写的返回值类型,参数,名字必须与父类的被重写方法一致(子类重写方法可以自己额外加上final,synchronized关键字,因为这不会造成覆盖失败),这里子类重写方法的返回值类型可以是父类被重写方法的返回值类型的子类,但不能是父类被重写方法的返回值类型的父类。方法重写发生的范围是子
阅读全文