08 2022 档案
摘要:【java面试题】重载和重写的区别 重载:发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法的返回值和访问修饰符可以不同 如果只有返回值类型不同其他相同,在编译时就会报错 public class Demo03 { public int test(int a,int b){ r
阅读全文
摘要:【java面试题】String、StringBuffer、StringBuilder String是final修饰的,不可变,每次操作都会产生新的String对象 StringBuffer 和 StringBuilder 都是在原对象上操作 所以如果经常需要改变字符串内容时,就可以使用StringB
阅读全文
摘要:【java面试题】final final 的作用 final的含义是最终的 修饰类:表示类不可被继承 修饰方法:表示方法不可被子类重写,但是可以重载 修饰变量:表示变量一旦被赋值就不可改变它的值 修饰成员变量 如果final修饰的是类变量,只能在静态代码块中初始化或声明该类变量时初始化 final
阅读全文
摘要:【java面试题】 == 和 equals "=="比较的机制:== 对比的是栈中的值 基本数据类型是变量值,也就是 int i = 1;在栈中存放的是 i = 1,== 比较的也是这个数值1 引用类型是堆中内存对象的地址 ,String str = new String("hello"); 通过n
阅读全文
摘要:【java面试题】JDK、JRE、JVM 的区别和联系 JDK: Java Develpment Kit java开发工具(提供给开发人员来用) JRE: Java Runtime Environment java运行时环境(提供给运行java程序的用户来用) JVM: Java Virtual M
阅读全文
摘要:【java面试题】ArrayList和LinkedList的区别 ArrayList和LinkedList都实现了List接口,它们有一下的不同点: ArrayList是基于索引的数据接口,它的底层是数组,它可以以O(1)时间复杂度对元素进行随机访问。 LinkedList是以元素列表形式存储它的数
阅读全文
摘要:【java面试题】面向对象的特征 面向对象编程是利用类和对象编程的一种思想,万物可归类,类是对于世界事物的高度抽象,万物皆对象,对象是具体的世界事物。 面向对象的三大特征:封装、继承、多态。 封装说明一个类的行为和属性与其他类的关系,低耦合,高内聚。 继承是父类和子类的关系。 多态说的是类与类的关系
阅读全文
摘要:反射(四)获取泛型、注解信息 反射操作泛型 Java采用泛型擦除的机制来引入泛型,Java中的泛型仅仅是给编译器javac使用的,确保数据的安全性和免去强制类型转换问题,但是,一旦编译完成,所有和泛型有关的类型全部擦除 为了通过反射操作这些类型,Java新增了ParameterizedType, G
阅读全文
摘要:反射(三)获取并操作对象及方法 获取运行时类的结构 通过反射获取运行时类的完整结构 Field、Method、Constructor、Superclass、Interface、Annotation... 我们以User类为例: class User{ private String name; pri
阅读全文
摘要:反射(二)之类加载 类加载内存分析 当程序主动使用某个类时,如果该类还未被加载到内存中,则该系统会通过如下三个步骤;来对该类进行初始化。 加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class 对象 链接:将
阅读全文
摘要:反射(一)之反射机制、Class类 反射机制 动态 VS 静态语言 动态语言:是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化,通俗点说就是在运行时,代码可以根据某些条件改变自身结构。 主要动态语言: Object-C、C#、Jav
阅读全文
摘要:注解 注解概念 mybatis、springboot 等框架的底层实现机制就是注解和反射 注解(Annotation) 是JDK5.0开始引入的新技术 Annotation 的作用: 不是程序本身,可以对程序做出解释 (和注释相同) 可以被其他程序(比如:编译器)读取,通过反射读取 Annotati
阅读全文
摘要:线程(八)之线程通信 生产者消费者问题 这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者和消费者之间互相依赖,互为条件 对于生产者,没有生产产品之前,要通知消费者等待,而生产了产品之后,又需要马上通知消费者消费 对于消费者,在消费之后,要通知生产者已经结束消费,需要生产新的产品以供消费
阅读全文
摘要:线程(七)之死锁、Lock锁 死锁 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。 某一个同步块同时拥有“两个以上对象的锁”时,就可能发生“死锁”的问题 我们用一个化妆的例子来了解死锁 小红先锁住了口红,然后一秒钟
阅读全文
摘要:线程(六)之线程同步 线程同步 并发:同一个对象被多个线程同时操作 上万人同时抢100张票 两个银行同时取钱 在现实生活中,我们遇到“同一个对象被多个线程同时操作”这种问题,比如食堂打饭,解决办法就是排队 处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同
阅读全文
摘要:线程(五)线程优先级、守护线程 线程优先级 Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按学号优先级决定应该调度哪个线程来执行。 线程优先级用数字表示,范围从1~10,在Thread中定义了几个常量来表示优先级 Thread.MIN_PRIORITY = 1; Th
阅读全文
摘要:线程(四)之线程状态 线程五大状态 创建状态:new一个Thread 就绪状态:调用start() 运行状态:cpu调用 阻塞状态:当调用sleep() wait() 或同步锁定时 死亡状态:正常执行完 停止线程 不推荐使用JDK 提供的 stop() destroy()方法【已废弃】 推荐线程自己
阅读全文