
Java~基础篇
Turing·
不积小流无以成江海
展开
-
redis zset利用并集求差集
我的需求是需要它做差集(总的内容缓存差用户已看的缓存)就能得到用户没有看的,也就是接下来要给用户看的内容我的思路是利用并集操作完成。它俩一并集操作,凡是相同的ID分数就会叠加并出来的结果正负一抵消就变成0了,然后我把小于等于0的都删掉就求出并集了。内容的缓存池value当成是内容的ID,score当成权重要以这个降序排序返回给用户(每次五条)解决的痛点是缓存里的数据结构zset有序集合,它只能做并集、交集不能做差集。.........原创 2022-07-25 01:15:30 · 1559 阅读 · 0 评论 -
Java修改文件权限
Runtime.getRuntime().exec("chmod 777 -R " + zipFile.getPath());原创 2021-07-28 17:16:52 · 359 阅读 · 0 评论 -
Java-IO流
原创 2021-03-29 00:07:22 · 84 阅读 · 0 评论 -
Java反射注解
Service层package com.qyc.service;/** * @ClassName: Service01 * @Description: * @Author: qiangyuecheng * @Date: 2021/3/11 12:15 上午 */public class Service01 { public void show(){ System.out.println(" service.show() "); }}Co..原创 2021-03-18 00:34:14 · 143 阅读 · 0 评论 -
领域模型命名(DO、DTO、BO、VO)
数据对象:DO数据传输对象:DTO业务对象:BO展示对象:VOPoJo描述:https://www.jianshu.com/p/b934b0d72602DTO理解:https://www.cnblogs.com/cxy2020/p/12332505.html原创 2020-11-10 10:00:02 · 559 阅读 · 0 评论 -
Java-Stack
Stack stack = new Stack(); stack.push("a"); stack.push("b"); stack.push("c"); stack.push("d"); System.out.println("stack.peek() = " + stack.peek()); System.out.println("stack.pop() = " + stack.pop())...原创 2020-09-15 20:49:35 · 107 阅读 · 0 评论 -
Java-ConcurrentHashMap
原理:https://blog.youkuaiyun.com/woshimaxiao1/article/details/83901113用法: 只列出了与map不同的方法,其他的方法请参考:https://blog.youkuaiyun.com/qq_41835813/article/details/108540006public class CHM { public static void main(String[] args) { ConcurrentHashMap concurr...原创 2020-09-15 20:27:31 · 188 阅读 · 0 评论 -
Java-ArrayList
查看ArrayList实际容量初始容量10 以1.5倍扩容,向下取值22public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> squares = new ArrayList<Integer>(); for (int i = 1; i < 18; i++) square...原创 2020-09-15 18:44:10 · 113 阅读 · 0 评论 -
Java-LinkedHashMap 实现LRU
原理:https://blog.youkuaiyun.com/a724888/article/details/80290276?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weigh原创 2020-09-14 20:45:24 · 198 阅读 · 0 评论 -
java-TreeMap
原理:https://blog.youkuaiyun.com/woshimaxiao1/article/details/83748227public class TreeMapDemo{ public static void main(String[] args) { TreeMap<String,String> map = new TreeMap<>(); map.put("1","qyc"); map.put("6","qy").原创 2020-09-14 19:45:13 · 146 阅读 · 0 评论 -
IdentityHashMap 与HashMap的区别
public class HashMapDemo { public static void main(String[] args) { Map<String,String> map1 = new IdentityHashMap<>(); Map<String,String> map = new HashMap<>(); map.put("name","qyc"); map.put(new.原创 2020-09-13 15:47:34 · 351 阅读 · 0 评论 -
Java-HashMap
HashMappackage com.qyc.map;import java.util.HashMap;import java.util.Map;import java.util.Set;/** * @author qyc * @time 2020/9/11 - 13:04 */public class HashMapDemo { public static void main(String[] args) { Map<String,String&g.原创 2020-09-11 18:55:22 · 221 阅读 · 0 评论 -
类图关系
聚合/组合属于关联关系 继承、实现 is a 关联关系 has a 依赖 use a原创 2020-09-07 13:57:23 · 178 阅读 · 0 评论 -
java.util.LinkedHashMap转bean报错
导pom <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier>原创 2020-08-14 13:58:37 · 1065 阅读 · 0 评论 -
OOM&OutOfMemoryError
Java中可以作为GC Roots的对象虚拟机栈(栈帧中局部变量区,也叫做局部变量表 方法区中的类静态属性引用的对象 方法区中常量引用的对象 本地方法中JNI(native方法引用的对象Errorjava.lang.StackOverFlowError每一个 JVM 线程都拥有一个私有的 JVM 线程栈,用于存放当前线程的 JVM 栈帧(包括被调用函数的参数、局部变量和返回地址等)。如果某个线程的线程栈空间被耗尽,没有足够资源分配给新创建的栈帧,就会抛出java.lang.Stack.原创 2020-06-10 21:58:58 · 178 阅读 · 0 评论 -
强引用、软引用、弱引用、虚引用是什么
强引用~Reference当内存不足时,JVM开始垃圾回收,对于强引用对象,就算出现了OOM也不会对该对象进行回收强引用是我们常见的普通对象的引用,只要还有强引用指向一个对象,就能表明对象还活着软引用~SoftReference相对强引用弱化了一点,需要java.lang.ref.SoftReference类来实现当系统内存充足时,不会回收当系统内存不足时,会被回收软引用通常在内存敏感的程序中,比如高速缓存就有用到弱引用~WeakReferencejava.lang.原创 2020-06-10 21:40:35 · 155 阅读 · 0 评论 -
Synchronized与Lock的区别
一 、原始组成synchronized是关键字属于JVM层面 monitorenter底层通过monitor对象来完成,其实wait/notify等方法也依赖于monitor对象,只有在同步快或方法中才能调用 lock是具体类 (import java.util.concurrent.locks.Lock;) 是api层面的锁二、使用方法synchronized不需要用户手动释放锁,当synchronized代码执行完毕后系统会自动让线程释放对锁的占用 ReentrantLock则需要.原创 2020-06-10 20:44:26 · 143 阅读 · 0 评论 -
阻塞队列BlockingQueue
操作:方法类型 抛出异常 true/false 阻塞 插入 add offer put 移除 remove poll take 检查 element peek ArrayBlockingQueue由数组结构组成的有界阻塞队列public class BlockingQueueDemo { public static void main(String[] args) throws .原创 2020-06-10 20:30:19 · 136 阅读 · 0 评论 -
Enum枚举类
public enum EnumDemo { ONE(1,"强月城"),TWO(2,"qyc"); private Integer id; private String name; public Integer getId() { return id; } public String getName() { return name; } EnumDemo(Integer id, String nam.原创 2020-06-10 20:10:11 · 152 阅读 · 0 评论 -
Java类初始化过程
public class Father { private int i = test(); private static int j = method(); public Father() { System.out.println("father构造"); } private static int method() { System.out.println("father-静态变量"); return 2;...原创 2020-06-07 21:59:47 · 708 阅读 · 0 评论 -
i++问题
public class iiiiiiiiiii { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; //4 1 11 System.out.println("i "+i); System.out.println("j "+j); .原创 2020-06-07 21:47:44 · 246 阅读 · 0 评论 -
线程安全的单例模式Single
俩种写法class People{ private static People people; //构造器私有化 private People(){ } public static synchronized People getPeople(){ if(people==null){ people = new People(); return people; } .原创 2020-06-07 21:42:30 · 156 阅读 · 0 评论 -
Stream 流式计算
package com.qyc.stream;import java.util.ArrayList;import java.util.Arrays;import java.util.Comparator;import java.util.List;import java.util.stream.Collectors;/** * @author qyc * @time 2020/5/26 - 16:29 */public class FlowCalculation { pub.原创 2020-05-26 17:18:06 · 325 阅读 · 0 评论 -
Java8 四大函数式接口
import java.util.function.Consumer;import java.util.function.Function;import java.util.function.Predicate;import java.util.function.Supplier;/** * @author qyc * @time 2020/5/26 - 14:59 */public class ForeInterface { public static void mai...原创 2020-05-26 16:27:53 · 571 阅读 · 0 评论 -
isEmpty判断
package com.springbootdemo.bean;/** * @author qyc * @time 2020/4/7 - 0:06 */public class Test01 { public static void main(String[] args) { String a = "b"; System.out.println...原创 2020-04-07 00:13:12 · 864 阅读 · 0 评论 -
动态代理模式
动态代理的意义在于:生成一个占位(代理对象),来替代真实对象,从而控制对知识对象的访问。代理的作用就是:在真实对象访问之前或者之后加入对应的逻辑。客户(调用者)--商务(代理对象)--软件工程师 (真实对象)JDK动态代理(真实对象要有接口)接口 package com.qyc.DyProxy_JDK;public interface HelloWord { void sa...原创 2019-11-15 18:32:44 · 122 阅读 · 0 评论 -
Java反射
Java反射机制主要提供了以下功能:在运行时构造一个类的对象 判断一个类所具有的成员变量和方法 调用一个对象的方法 生成动态代理 反射最大的应用就是框架对象的构建ReflectServiceImpl.javapackage com.qyc.reflect;public class ReflectServiceImpl { private String name;...原创 2019-11-15 17:16:27 · 138 阅读 · 0 评论 -
clone克隆(深克隆和浅克隆)
浅克隆package clone;import java.util.Date;public class Student1 implements Cloneable{ public String nameString; public String numberString; public Date date; public Student1(String nameString,...原创 2019-09-25 15:20:23 · 196 阅读 · 0 评论 -
Java 线程池
线程池:Java中开辟除了一种管理线程的概念,这个概念叫做线程池,从概念以及应用场景中,我们可以看到线程池的好处,方便管理线程,也可以减少内存消耗。创建:ThreadPoolExecutor --》Executor构造函数:public( int corePoolSize, int maximumPoolSize, long keepAliveT...原创 2019-09-24 16:11:29 · 92 阅读 · 0 评论 -
Java 多线程
简单例子:package 多线程;public class Thread1 implements Runnable{ @Override public void run() { // TODO 自动生成的方法存根 for(int i=0;i<10;i++){ System.out.println(Thread.currentThread().getName()+...原创 2019-09-18 09:38:55 · 90 阅读 · 0 评论 -
Java IO流
递归文件夹package com.gg.demo;import java.io.File;public class TestDemo8 { public static void showAllFiles(File file){ try { if (file != null) { // 书写 递归的 出口 , 当前File对象 是一...原创 2019-09-17 10:57:30 · 102 阅读 · 0 评论 -
盖世人读书
盖世人读书 第一要有志,第二要有识,第三要有恒 有志则断不甘为下流 有识则知学问不尽,不敢以一得自足 有恒则断无不成之事 ...原创 2019-06-24 20:40:35 · 1987 阅读 · 0 评论 -
不同数据类型的转换规则~运算符优先级表
优先级byte < short < char < int < long < float < double从低到高进行隐式的数据类型转换 从高到低要进行强制类型转换 前面加()强制类型转换时俩个short类型相加会得到int类型 所以short s1=1; s1=s1+1;程序会报错,+=进行了特殊处理,所以s1+=1;能够通过。优先级 ...原创 2019-05-17 15:17:21 · 1473 阅读 · 0 评论