随笔分类 - java
摘要:一、说明 rxjava 是基于事件的异步编程。在写代码之前,我们首先要了解几个概念。 (如果有什么错误之处,还请指正) Observable(被观察者,可观察对象,就是要进行什么操作,相当于生产者) bscriber 负责处理事件,他是事件的消费者 Operator 是对 Observable 发出
阅读全文
摘要:吞吐量:CPU运行代码的时间和CPU 总共消耗时间的比值。 在Java中,我们知道,内存的分布主要式堆和栈,栈会随着线程的结束而销毁,因此我们不需要考虑栈内存的回收,我们只需要考虑堆的垃圾回收,忽略其他内存的回收。 在JVM 运行的不同时期,使用不同的垃圾回收算法。 在Java 中,并没有明确的说明
阅读全文
摘要:问题描述 前段时间遇到个问题,自己内部系统调用出现重复请求导致数据混乱。 发生条件:接受到一个请求,该请求没有执行完成又接受到相同请求,导致数据错误(如果是前一个请求执行完成,马上又接受相同请求不会有问题) 问题分析:是由于数据库的脏读导致 问题解决思路 1.加一把大大的锁 (是最简单的实现方式,但是性能堪忧,而且会阻塞请求) 2.实现请求拦截 (可以共用,但是怎么去实现却是一个问题...
阅读全文
摘要:1. 单例模式(一个类只有一个实例) 2. 工厂模式(多个子类实现一个接口,根据不同子类复写父类方法,根据业务产生不同的实例) 创建两个实现类 创建一个工厂,根据类型不同创建不同的对象 测试(传入不同的类型,得到不同的对象内容) 3. 代理模式 (由一个主题来操作一个真实主题,代理服务器来完成一个真
阅读全文
摘要:在JVM中,是通过线程轮流切换时间来获得CPU,因此在同一刻时间,一个CPU只能执行一条线程命令 1.java中内存的分布? JVM 执行的过程。①加载class文件 ②管理并分配内存 ③执行垃圾收集 内存结构图: 栈 java栈中,存放一个个栈帧,每一个栈帧对应一个被调用方法,在栈帧中包含局部变量
阅读全文
摘要:首先对hash的了解:就是关键字,和数据建立关系的映射。 hash常用算法:假设我们中的字符有相应的内部编码,当然在实际过程中,我们不可能将所有的编码当做hash值。 平方取中法,将所得的内部编码平方,取7-9位作为hashcode. 折叠法:将编码分割,然后相加。 除留取余法 即便是按照上面的计算
阅读全文
摘要:1.HashSet分析 hashset 底层是hash表,就是hashMap,是无序的,唯一的.也就是说,它的底层其实就是一个HashMap key 值的组成值。所以具有唯一性。 2.LinkedHashSet 底层就是链表和hash表,由链表来保证顺序,用hash表保证唯一性。相当于使用的是 Li
阅读全文
摘要:1.创建 ArrayList 的底层是一个数组。 ①默认情况,如果没有传递数组的大小,默认使用一个空的数组。如果有,代表使用当前传入长度作为数组,或者数组长度作为数组。 ②新增情况下,先要判断数组长度是否够,如果长度不够,需要进行数组的扩增,扩增大小为0.5倍,奇数数舍去。下面为扩增的源码,如果扩增
阅读全文
摘要:参考:https://www.jianshu.com/p/331b872e9c8f 1.建立一张存放的表 CREATE TABLE `sys_serial_number` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `module_name` varchar
阅读全文
摘要:/*package ch.util; import com.trm.model.func.FunctionTree; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; public class FunctionUtil { public sta...
阅读全文
摘要:java面试题 1.接口和抽象类的区别 2.什么是不可变对象? 不可变对象一旦被创建,状态就不能被修改。任何修改都会新创建一个新的对象,如String Integer 等包装类。 3.java中几种创建对象的方式? ①采用new的方式 ②通过反射进行创建 ③采用clone 的方式进行创建 ④通过序列
阅读全文
摘要:queue 主要原则就是先进先出(特殊除外) 基本方法的区别 ( 添加数据: add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常 put 添加一个元素 如果队列满,则阻塞 offer 添加一个元素并返回true 如果队列已满,则返回false 移除数据: re
阅读全文
摘要:对java8 新特性的整理 1.lambdab表达式 例如: //lambda一般只有一行代码 // 相当于ArrayList集合 List<Integer> integers = Arrays.asList(1, 1, 4,5,6,7,8); //进行遍历 Arrays.asList(1, 1,
阅读全文

浙公网安备 33010602011771号