摘要:什么是默认方法? 默认方法是JDK8新特性,指的是接口也可以提供具体方法了,而不像以前,只能提供抽象方法Mortal 这个接口,增加了一个默认方法 revive,这个方法有实现体,并且被声明为了default 为什么会有默认方法? 假设没有默认方法这种机制,那么如果要为Mortal增加一个新的方法r
阅读全文
摘要:内部类分为四种: 非静态内部类 静态内部类 匿名类 本地类 非静态内部类 非静态内部类 BattleScore “战斗成绩”非静态内部类可以直接在一个类里面定义比如:战斗成绩只有在一个英雄对象存在的时候才有意义所以实例化BattleScore 的时候,必须建立在一个存在的英雄的基础上语法: new
阅读全文
摘要:以上是如何获取 动态调用 获取到的 类的信息 (属性 方法 构造器) 反射机制的性能问题 使用setAccessible提高性能(setAccessible是启用/禁用访问安全的开关) 效率提高4倍 反射操作注解(annotation) 反正操作泛型(Generic) java采用泛型擦除的机制来引
阅读全文
摘要:package test; public class EnumTest { /**枚举 * */ public static void main(String[] args) { // TODO Auto-generated method stub Student stu = new Student(); ...
阅读全文
摘要:package test; public class MathTest { public static void main(String[] args) { System.out.println(Math.abs(-40.3)); System.out.println(Math.abs(40.3)); System.out.println...
阅读全文
摘要:时间处理相关类 时间是一个一维的东东。所以,我们需要一把刻度尺来区表达和度量时间。在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一)。 我们用long类型的变量来表示时间,从基准时间往前几亿年,往后几亿年都能表示。如果想获得现在时刻的
阅读全文
摘要:为什么需要包装类? JAVA是支持跨平台的。可以在服务器 也可以在手机上运行 基本数据类型 在栈中 效率更高 包装类 将数据类型转换成对象 在 堆中 利于操作 自动装箱和自动拆箱 auto-boxing and unboxing 自动装箱 基本类型就自动封装到与他相同类类型的包装类中,如: Inte
阅读全文
摘要:1 package cn.bjsxt.array2; 2 /** 3 * 4 * 矩阵加法 5 * 乘法 6 * @author Administrator 7 * 8 */ 9 public class Matrix { 10 public static void print(int[][] c){ 11 //打印矩阵 12 ...
阅读全文
摘要:1 package cn.bjsxt.stringbuilder; 2 /** 3 * String 不可变字符序列 4 * StringBuilder StringBuffer都是是可变字符序列 5 * 区别在于StringBuilder(线程不安全,效率高) StringBuffer是(线程安全,效率低) 6 * @author Administrator 7 ...
阅读全文
摘要:Java字符串就是Unicode字符序列,例如“Java”就是4个Unicode字符J,a,v,a组成的。 Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的一个实例。
阅读全文
摘要:1 package cn.bjsxt.array; 2 3 public class Car { 4 String name; 5 // 构造方法 6 public Car(String name){ 7 this.name=name; 8 } 9 } 1 package cn.bjsxt.array; 2 /** 3 * 数组 引用...
阅读全文
摘要:又名钩子函数(C语言里Hook) 不知道如何实现,可以写个回调, 相当于提供个钩子,让别人来挂东西,来实现。 其实就是用多态,实现了分离 。 实际工作中更多用的是接口,强制你实现重写方法。 我们定义一个接口 说白了,就是多态。
阅读全文
摘要:1 package cn.bjsxt.oop.testInterface; 2 /** 3 * 接口 是最抽象的类 只有声明 实现交给实现类 设计合实现分离 4 * 只有常量和抽象方法 JDK1.8之后 接口里也可以有普通方法(非抽象方法) 但必须加上default public default void test(){方法体} 5 * @author Adminis...
阅读全文
摘要:1 package com.bjsxt.oop.abstractClass; 2 //抽象类 3 public abstract class Animal { 4 //因为父类的方法总是被重写 那就没写的必要了 但是有声明的必要 声明成抽象方法 包含了 抽象方法的类 是抽象类 必须加上关键字 abstrat 5 /* 6 public void run(){...
阅读全文
摘要:我们试着重写方法 我们每一个动物,重写一个属于自己的方法; 我们试着 调用一下 打印一下 显然,这么做比较繁琐 ,不如做个逻辑判断,是啥就是啥。 当然 里面也得做强制转换,否则,编译器不认,通不过。 打印看一下结果 对象转型可以使父类对象的引用可以指向子类对象,给程序带来了比较好的可扩展性:我们可以
阅读全文
摘要:为什么要封装? 我们看电视,只要按一下开关和换台就行了。有必要了解电视的内部结构吗?有必要了解显像管吗? 封装是为了隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性,可维护性。 我们设计程序要追求:“高内聚,低耦合”。 高内聚:就是类的颞部数据的操作细节自己完成,不允
阅读全文
摘要:记住2句话(常识),像个正常人思考! 1.“ is-a ”关系 用 继承! 学生是人,学生继承人这个类, 2. “has-a ”关系 用 组合!电脑有显卡,那么我们就在计算机类中增加显卡属性来复用显卡类的代码。 使用继承的代码 main方法 控制台 使用组合的代码 控制台 类继承和对象组合的优缺点
阅读全文
摘要:写在前面 聊到super,一定会想到this,没错他们都是对象的引用,表示一个指向对象的地址。 他们是2个隐式参数,不用你传,本身就有。 每一个构造方法都具备这2个隐式参数 只不过指向的对象不同,super指向的父类对象的引用,this是对自身对象的引用。 说到这,一定要提一下构造器,又叫构造方法,
阅读全文