上一页 1 ··· 8 9 10 11 12 13 下一页
摘要: Java 8的新特性之一就是流stream,配合同版本出现的 Lambda ,使得操作集合(Collection)提供了极大的便利。 案例引入 在JAVA中,涉及到对数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的方式进行逐个处理,或者使用Stream的方式进行处理。 假设 阅读全文
posted @ 2024-09-03 21:35 程序员Seven 阅读(274) 评论(0) 推荐(0)
摘要: 为什么需要SPI机制 SPI和API的区别是什么 SPI是一种跟API相对应的反向设计思想:API由实现方确定标准规范和功能,调用方无权做任何干预; 而SPI是由调用方确定标准规范,也就是接口,然后调用方依赖此接口,第三方实现此接口,这样做就可以方便的进行扩展,类似于插件机制,这是SPI出现的需求背 阅读全文
posted @ 2024-09-02 21:09 程序员Seven 阅读(234) 评论(0) 推荐(1)
摘要: 介绍 最近上了一个新项目,考虑到一个问题,在高并发场景下,我们无法控制前端的请求频率和次数,这就可能导致服务器压力过大,响应速度变慢,甚至引发系统崩溃等严重问题。为了解决这些问题,我们需要在后端实现一些机制,如接口限流、防重复提交和接口防抖,而这些是保证接口安全、稳定提供服务,以及防止错误数据 和 阅读全文
posted @ 2024-09-01 13:16 程序员Seven 阅读(4285) 评论(7) 推荐(19)
摘要: ArrayList介绍 ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity),表示底层数组的实际大小,容器内存储元素的个数不 阅读全文
posted @ 2024-08-30 22:29 程序员Seven 阅读(361) 评论(0) 推荐(0)
摘要: 介绍 每个类都有一个 Class 对象,包含了与类有关的信息。当编译一个新类时,会产生一个同名的 .class 文件,该文件内容保存着 Class 对象。 类加载相当于 Class 对象的加载。类在第一次使用时才动态加载到 JVM 中,可以使用 Class.forName("com.mysql.jd 阅读全文
posted @ 2024-08-29 21:48 程序员Seven 阅读(567) 评论(0) 推荐(1)
摘要: 枚举的定义 在JDK1.5之前,我们要是想定义一些有关常量的内容,例如定义几个常量,表示从周一到周末,一般都是在一个类,或者一个接口中,写类似于如下代码: public class WeekDayConstant { public static final int MONDAY = 0; publi 阅读全文
posted @ 2024-08-29 21:37 程序员Seven 阅读(56) 评论(0) 推荐(0)
摘要: 介绍 Throwable Throwable 是 Java 语言中所有错误与异常的超类。 Throwable 包含两个子类:Error(错误)和 Exception(异常),它们通常用于指示发生了异常情况。 Throwable 包含了其线程创建时线程执行堆栈的快照,它提供了 printStackTr 阅读全文
posted @ 2024-08-28 21:21 程序员Seven 阅读(443) 评论(0) 推荐(1)
摘要: 注解是否支持继承 不支持继承 不能使用关键字extends来继承某个@interface,但注解在编译后,编译器会自动继承java.lang.annotation.Annotation接口. 虽然反编译后发现注解继承了Annotation接口,但即使Java的接口可以实现多继承,但定义注解时依然无法 阅读全文
posted @ 2024-08-27 20:46 程序员Seven 阅读(147) 评论(0) 推荐(0)
摘要: 介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。主要作用如下: 编写文档——通过注解中标识的元数据可以生成doc文档,这是最常见的,也是java 最早提供的注解。常用的有@param @return 等 代码分析——通过注解 阅读全文
posted @ 2024-08-27 20:40 程序员Seven 阅读(56) 评论(0) 推荐(0)
摘要: 类型擦除会造成多态的冲突,而JVM的解决方法就是泛型的桥接方法。 举例 现在有这样一个泛型类: class Pair<T> { private T value; public T getValue() { return value; } public void setValue(T value) { 阅读全文
posted @ 2024-08-26 21:07 程序员Seven 阅读(359) 评论(0) 推荐(0)
摘要: 概念 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。 泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和 阅读全文
posted @ 2024-08-26 20:55 程序员Seven 阅读(121) 评论(0) 推荐(0)
摘要: 序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 什么时候会用到 当只在本地 JVM 里运行下 Java 实例,这个时候是不需要什么序列化和反序列化的,但当出现以下场景时,就需要序列化和反序列化了: 当需要将内存中的对象持久化到磁盘,数据 阅读全文
posted @ 2024-08-24 21:21 程序员Seven 阅读(486) 评论(0) 推荐(3)
摘要: static能修饰的地方 静态变量 静态变量: 又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它;静态变量在内存中只存在一份。 实例变量: 每创建一个实例就会产生一个实例变量,它与该实例同生共死。 静态方法 静态方法在类加载的时候就存在了,它不依赖于任何实 阅读全文
posted @ 2024-08-23 21:01 程序员Seven 阅读(461) 评论(0) 推荐(1)
摘要: 什么是值传递和引用传递? 值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量。 引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身,两者指向同一片内存空间。所以对引用对象进行操作会同时改变原对象。 java中不存在引用传递,只有值传递。即不存在 阅读全文
posted @ 2024-08-23 20:54 程序员Seven 阅读(57) 评论(0) 推荐(0)
摘要: 为什么会哈希冲突 我们知道,在使用Map,Set这些集合时,都会重写hashcode方法,但Java中的hashCode方法会将对象映射到一个32位的整数范围(即从-2^31 到 2^31-1)。无论输入数据多么庞大,哈希函数生成的哈希值总是落在这个有限范围内。因此是会存在hash冲突的。 无论哈希 阅读全文
posted @ 2024-08-22 20:51 程序员Seven 阅读(544) 评论(0) 推荐(0)
摘要: 这是一个经典的问题,我们先从==开始看起 == "==" 是运算符 如果比较的对象是基本数据类型,则比较的是其存储的值是否相等; 如果比较的是引用数据类型,则比较的是所指向对象的地址值是否相等(是否是同一个对象)。 Person p1 = new Person("123"); Person p2 = 阅读全文
posted @ 2024-08-22 20:42 程序员Seven 阅读(327) 评论(0) 推荐(0)
摘要: 先说结论,是对象!可以继续往下看 数组是不是对象 什么是对象?对象是类的一个实例,有状态和行为 Java对象: 软件的对象也有行为和状态 软件对象的状态称之为属性 方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成 而java中的数组具有java中其他对象的一些基本特点。比如封装了一些数据 阅读全文
posted @ 2024-08-21 21:35 程序员Seven 阅读(109) 评论(0) 推荐(0)
摘要: 先说下结论,可以自定义包名不为java.lang的String类,区别包名是可以正常使用的。 包名不为java.lang package com.seven.jvm; public final class String { /** The value is used for character st 阅读全文
posted @ 2024-08-21 21:27 程序员Seven 阅读(82) 评论(0) 推荐(0)
摘要: String, StringBuffer 和 StringBuilder 可变性 String不可变 StringBuffer 和 StringBuilder 可变 线程安全 String 不可变,因此是线程安全的 StringBuilder不是线程安全的 StringBuffer 是线程安全的,内 阅读全文
posted @ 2024-08-20 21:43 程序员Seven 阅读(49) 评论(0) 推荐(0)
摘要: 能存储多少字符,通过以下步骤来看 首先String的length方法返回是int。所以理论上长度一定不会超过int的最大值。 编译器对字符串字面量长度的限制源自Java编译器(如javac)在处理常量池时的实现。编译器源码如下,限制了字符串长度大于等于65535就会编译不通过:// src/jdk. 阅读全文
posted @ 2024-08-20 21:29 程序员Seven 阅读(144) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 下一页