java中的匿名类有一个倍儿神奇的用法,见下面代码示例: package contract; public interface ISay { void sayHello(); } 上面是一个简单的接口,下面是如何使用: package jimmy; import contract.ISay; public class Program { public static void main(String[] args) { ISay say = new ISay() { public void say
java面试中经常被问到list常用的类以及内部实现机制,平时开发也经常用到list集合类,因此做一个源码级别的分析和比较之间的差异. 首先看一下List接口的的继承关系: list接口继承Collection接口,Collection接口继承Iterable接口. Iterable接口定义的方法: public interface Iterable<T> { /** * Returns an iterator over a set of elements of type T. * * @re
JAVA中限制接口流量可以通过Guava的RateLimiter类或者JDK自带的Semaphore类来实现,两者有点类似,但是也有区别,要根据实际情况使用.简单来说, RateLimiter类是控制以一定的速率访问接口. Semaphore类是控制允许同时并发访问接口的数量. 一.RateLimiter类 RateLimiter翻译过来是速率限制器,使用的是一种叫令牌桶的算法,当线程拿到桶中的令牌时,才可以执行.通过设置每秒生成的令牌数来控制速率.使用例子如下: public class Te
Java中特殊的类--Object类 1.Object类的概述 Object类是java默认提供的类.Java中除了Object类,所有的类都是有继承关系的.默认会继承Object类,即所有的对象都可以用Object进行接收 Object类位于java.lang包中,该包中包含着Java最基础和核心的类,在编译时会自动导入. class Per{} class Studnet{} public class TestObject4_14 { public static void main(Stri
带有静态方法的类通常(虽然不一定是这样)不打算被初始化. 可以用私有构造函数来限制非抽象类被初始化. 例如,java中的math类.它让构造函数标记为私有,所以你无法创建Math的实例.但Math类却不是静态类. 下面是math类: public final class Math { /** * Don't let anyone instantiate this class. */ private Math() {} public static final double E = 2.718281
在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历: //java中遍历实体类,获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for (Field field : model.getClass().getDeclaredFields()) { fie