随笔分类 - 面试题
摘要:Java面向对象编程(OOP)的核心特征通常包括封装性、继承性、多态性和抽象性。具体如下: 封装性:封装是指将对象的属性(数据)和行为(方法)绑定在一起,并对对象的实现细节进行隐藏,只暴露出必要的接口给外部使用。这样做的目的是为了保护对象的内部状态,防止外部随意访问和修改。 继承性:继承允许一个新创
阅读全文
摘要:常数复杂度获取字符串长度 由于 len 属性的存在,我们获取 SDS 字符串的长度只需要读取 len 属性,时间复杂度为 O(1)。而对于 C 语言,获取字符串的长度通常是经过遍历计数来实现的,时间复杂度为 O(n)。通过 strlen key 命令可以获取 key 的字符串长度。 杜绝缓冲区溢出
阅读全文
摘要:5种基础数据类型,分别是:String、List、Set、Zset、Hash。 结构类型结构存储的值结构的读写能力 String字符串 可以是字符串、整数或浮点数 对整个字符串或字符串的一部分进行操作;对整数或浮点数进行自增或自减操作; List列表 一个链表,链表上的每个节点都包含一个字符串 对链
阅读全文
摘要:热点数据的缓存 缓存是Redis最常见的应用场景,之所有这么使用,主要是因为Redis读写性能优异。而且逐渐有取代memcached,成为首选服务端缓存的组件。而且,Redis内部是支持事务的,在使用时候能有效保证数据的一致性。 限时业务的运用 redis中可以使用expire命令设置一个键的生存时
阅读全文
摘要:全盘负责,当一个类加载器负责加载某个Class时,该Class所依赖的和引用的其他Class也将由该类加载器负责载入,除非显示使用另外一个类加载器来载入 父类委托,先让父类加载器试图加载该类,只有在父类加载器无法加载该类时才尝试从自己的类路径中加载该类 缓存机制,缓存机制将会保证所有加载过的Clas
阅读全文
摘要:定义在类内部的非静态类,就是成员内部类。成员内部类不能定义静态方法和变量(final 修饰的除外)。这是因为成员内部类是非静态的,类初始化的时候先初始化静态成员,如果允许成员内部类定义静态变量,那么成员内部类的静态变量初始化顺序是有歧义的。 public class Out { private st
阅读全文
摘要:定义在类内部的静态类,就是静态内部类。 public class Out { private static int a; private int b; public static class Inner { public void print() { System.out.println(a); }
阅读全文
摘要:Java 类中不仅可以定义变量和方法,还可以定义类,这样定义在类内部的类就被称为内部类。根 据定义的方式不同,内部类分为静态内部类,成员内部类,局部内部类,匿名内部类四种。
阅读全文
摘要:demo: /1:*** 定义注解*/ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface FruitProvider { /**供应商编号*/ public int
阅读全文
摘要:调用某个对象的 getClass()方法 Person p=new Person(); Class clazz=p.getClass(); 调用某个类的 class 属性来获取该类对应的 Class 对象 Class clazz=Person.class; 使用 Class 类中的 forName(
阅读全文
摘要:反射 API 用来生成 JVM 中的类、接口或则对象的信息。 1. Class 类:反射的核心类,可以获取类的属性,方法等信息。 2. Field 类:Java.lang.reflec 包中的类,表示类的成员变量,可以用来获取和设置类之中的属性 值。 3. Method 类: Java.lang.r
阅读全文
摘要:编译时类型和运行时类型 在 Java 程序中许多对象在运行是都会出现两种类型:编译时类型和运行时类型。 编译时的类型由 声明对象时实用的类型来决定,运行时的类型由实际赋值给对象的类型决定 。如: Person p=new Student(); 其中编译时类型为 Person,运行时类型为 Stude
阅读全文
摘要:在 Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法; 并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方 法的功能成为 Java 语言的反射机制。
阅读全文
摘要:动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结 构上的变化。比如常见的 JavaScript 就是动态语言,除此之外 Ruby,Python 等也属于动态语言, 而 C、C++则不属于动态语言。从反射角度说 JAVA 属于半动态语言。
阅读全文
摘要:Throw 和 throws 的区别: 位置不同 1. throws 用在函数上,后面跟的是异常类,可以跟多个;而 throw 用在函数内,后面跟的 是异常对象。 功能不同: 1.throws 用来声明异常,让调用者只知道该功能可能出现的问题,可以给出预先的处理方 式;throw 抛出具体的问题对象
阅读全文
摘要:1.遇到问题不进行具体处理,而是继续抛给调用者 (throw,throws) 抛出异常有三种形式,一是 throw,一个 throws,还有一种系统自动抛异常。 public static void main(String[] args) { String s = "abc"; if(s.equal
阅读全文
摘要:Throwable 是 Java 语言中所有错误或异常的超类。下一层分为 Error 和 Exception Error 1. Error 类是指 java 运行时系统的内部错误和资源耗尽错误。应用程序不会抛出该类对象。如果 出现了这样的错误,除了告知用户,剩下的就是尽力使程序安全的终止。 Exce
阅读全文
摘要:先把 25 匹⻢分成 5 组,进⾏ 5 场赛⻢,得到每组的排名。 再将每组的第 1 名选出,进⾏ 1 场赛⻢,按照这场的排名将 5 组先后 标为 A、B、C、D、E。 可以知道,A 组的第 1 名就是所有 25 匹⻢的第 1 名。⽽第 2、3 名只 可能在 A 组的 2、3 名,B 组的第 1、2
阅读全文
摘要:Spring框架中的IOC是**控制反转**,AOP是**面向切面编程**。 IOC是Spring框架的核心特性之一,它代表的是控制反转,意味着将对象的创建和管理交给Spring容器,而不是传统的在对象内部进行控制。这样可以实现对象之间的解耦,提高代码的可维护性和灵活性。IOC的底层原理包括XML解
阅读全文
摘要:(1) master服务器将数据的改变记录二进制binlog日志,当master上的数据发生改变时,则将其改变写入二进制日志中 (2) slave服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开始一个IOThread请求master二进制事件 (3)同时主节
阅读全文

浙公网安备 33010602011771号