
java
coderlong
钱能解决的事情,,,我都解决不了。
展开
-
Guava Cache的使用
缓存在Guav中的应用Guava Cache与ConcurrentMap很相似,但也不完全一样。最基本的区别是ConcurrentMap会一直保存所有添加的元素,直到显式地移除。相对地,Guava Cache为了限制内存占用,通常都设定为自动回收元素。在某些场景下,尽管LoadingCache 不回收元素,它也是很有用的,因为它会自动加载缓存。通常来说,Guava Cache适用于:你愿意消...原创 2019-11-17 21:14:55 · 653 阅读 · 0 评论 -
Longest-Substring-Without-Repeating-Characters
title: Longest Substring Without Repeating Characters date: 2017-10-24 22:58:49 categories: - algorithm tags: - algorithm摘要:Brute Force 正文: Approach #1 Brute Force [Time Lim...原创 2018-03-05 19:55:25 · 537 阅读 · 0 评论 -
java反射机制深入理解剖析
title: java反射机制深入理解分析 date: 2018-3-3 14:18:40 categories: - JDK tags: - JDK - 反射反射的简单介绍主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。一个类有多个组成部分,例如:成员...原创 2018-03-05 19:56:08 · 303 阅读 · 0 评论 -
Lettter_Case_Permutation
title: 784. Letter Case Permutation date: 2018-3-4 21:18:40 categories: - Algorithm tags: - AlgorithmGiven a string S, we can transform every letter individually to be lowercase or...原创 2018-03-05 19:57:00 · 174 阅读 · 0 评论 -
JDK注解的理解
title: JDK注解的理解与使用 date: 2018-3-1 14:18:40 categories: - JDK tags: - 代码重构 - JDK一,什么是注解我们大家都知道Java代码中使用注释是为了向以后阅读这份代码的人解释说明一些事情,注解是注释的升级版,它可以向编译器、虚拟机等解释说明一些事情。比如我们非常熟悉的@Over...原创 2018-03-05 19:57:22 · 1254 阅读 · 0 评论 -
ZK 主从模式
title: Zookeeper实现主从模式date: 2018-11-12 23:18:40categories:- Zookeepertags:- ZookeeperZK 探究native Zookeeper主从模式Zk的master节点public class Master implements Watcher{ ZooKeeper zk; String...原创 2019-06-05 19:41:54 · 1570 阅读 · 0 评论 -
回溯算法的一点总结
title: backtrack解决问题一点总结date: 2018-2-5 21:18:40categories:- Algorithmtags:- Algorithm算法设计与分析中就学过回溯法(递归,迭代),可是一遇到问题,还是没有建立起使用回溯的思想。在子集包含,字符串重建,序列,等问题中都非常好用。Permutations1public class leetcod...原创 2019-06-05 19:42:43 · 2343 阅读 · 0 评论 -
指令冲排序的一点总结
title: 指令重排序date: 2017-12-25 12:50:17categories:- concurrenttags:- Java- concurrent- JDK源码在执行程序时,为了提供性能,处理器和编译器常常会对指令进行重排序,但是不能随意重排序,不是你想怎么排序就怎么排序,它需要满足以下两个条件:在单线程环境下不能改变程序运行的结果;存在数据依赖关系的不...原创 2019-06-05 19:44:01 · 216 阅读 · 0 评论 -
线程池源码解析
title: 线程池源码剖析date: 2018-5-21 14:18:40categories:- JDKtags:- JDK- 代码重构- 源码学习摘要:JDK1.8线程池源码剖析多线程编程中,为每一个任务分配一个线程是不可行的。那么,如何来管理我们的线程,减少系统的性能开销就是我们研究线程池的动力。JDK1.8线程池的生命周期在多线程的环境下为每个任务都分配一个线...原创 2019-06-05 19:45:23 · 356 阅读 · 0 评论 -
Mybatis源码解析
title: Mybatis源码分析1date: 2018-7-9 14:18:40categories:- Mybatistags:- Mybatis摘要:Mybatis源码学习1暑假看完了《深入Mybatis技术原理》,在这里写了一点对Mybatis运行原理的一点总结。Mybatis的基本构成主要包含了下面几个重要的组件:SqlSessionFactoryBuilde...原创 2019-06-05 19:46:42 · 741 阅读 · 0 评论 -
NIO学习
title: 三言两语之 NIOdate: 2018-3-23 23:02:17categories:- Javatags:- NIO老是说,异步非阻塞,同步非阻塞,异步IO,NIO,同学你能分清吗?NIO的selector是NIO实现非阻塞的关键之处。仅用单个线程来处理多个Channels的好处是,只需要更少的线程来处理通道。事实上,可以只用一个线程处理所有的通道。对于操作系统...原创 2019-06-05 19:47:24 · 141 阅读 · 0 评论 -
回压式 负载均衡的思考
回压策略Gateway维护一个ConcurrentLinkedQueue[WorkRequest],其中WorkRequest里面记录Provider的唯一标志。之后LoadBalance从这个队列里面一直Poll工作请求。如果有则选择对应的Provider打过去,如果没有则循环等待(此时称Provider端对Gateway产生了回压);Provider端注册Listener的时候,告知Ga...原创 2019-07-26 19:29:24 · 462 阅读 · 0 评论 -
lombok简单使用和原理介绍 - 1
lombok 的使用和简单原理分享Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter(), setter()或eques()方法,同时可以自动化日志变量。1 如何使用1.1. 添加maven依赖<dependency> <groupId>org.projectlombok</gro...原创 2019-08-07 23:58:14 · 258 阅读 · 0 评论 -
stringCompare
title: stringComplare date: 2017-10-26 21:00:54 categories: - java tags: - JVM - java摘要: 探秘String Stringbuffer StrignBuilder你了解String 类吗?想要了解一个类,最好的办法就是看这个类的实现源代码,S...原创 2018-03-16 14:21:23 · 400 阅读 · 0 评论 -
AVL平衡树详解
title: AVL平衡树删除增加操作 date: 2018-3-7 23:59:17 categories: - java tags: - java - java集合 - JDK在看MySQL索引结构的时候,就对什么B树,B+树,BST有点混淆了。 等到在遇到AVL树,JDK的HashMap实现红黑树的时候,就更加搞不明白了, 所以...原创 2018-03-07 19:38:16 · 321 阅读 · 0 评论 -
ArrayList
ArrayList的介绍ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能在单线程环境下,多线程环境下可以考虑用collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArray转载 2017-12-24 22:34:23 · 183 阅读 · 0 评论 -
least-2017
title: least-2017 date: 2017-12-14 11:24:49 categories: - 生活 tags: - 代码 - 个人感想摘要: 六级考试之前的坑? 不,是java反射 正文:武汉的天气真是冷啊!毫无小桥流水的风度。什么事反射啊? 电面试题反射是一种间接操作目标对象的机制,在程序程序运行时获取或者设置对象自身的信息。 只要给定类的原创 2017-12-17 22:43:29 · 219 阅读 · 0 评论 -
深浅拷贝的辨析学习
jaav 克隆(深浅拷贝)java中对象的创建clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢? 1 使用new操作符创建一个对象 2 使用clone方法复制一个对象 那么这两种方式有什么相同和不同呢? new操作符的本原创 2018-01-01 14:53:11 · 284 阅读 · 0 评论 -
Builder模式
使用 Builder 模式构造 JavaBean 的好处我们一般在构造一个javaBean 对象时,无非有三种写法: 1. 直接通过构造函数传参的方式设置属性,这种方法如果属性过多的话会让构造函数十分臃肿,而且不能灵活的选择只设置某些参数。 2. 采用重叠构造区模式,先写第一个只有必要参数的构造器,第二个构造器有一个可选参数,第三个构造器有两个可选参数,以此类推;如果参数比较多时,类里面会出现一原创 2018-01-12 11:12:27 · 351 阅读 · 0 评论 -
java序列化与反序列化
Java的序列化与反序列化Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨。 1. 序列化与反序列化的定义Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。2. 为什么需要序列化与反序列化?我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片原创 2018-01-03 12:59:31 · 238 阅读 · 0 评论 -
创建对象的五种方法
创建对象的五种方法Java中有5种创建对象的方式,下面给出它们的例子。1 使用new关键字,估计谁都用吧person person = new person("aaa", 121);2、使用Class类的newInstance方法我们也可以使用Class类的newInstance方法创建对象。这个newInstance方法调用无参的构造函数创建对象。我们可以通过下面方式调用newInstance方法原创 2018-01-03 13:00:38 · 1766 阅读 · 0 评论 -
IO
1.Java Io流的概念,分类,类图。 1.1 Java Io流的概念 java的io是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘,文件,网络连接等)抽象表述为“流”(stream)。通过流的形式允许java程序使用相同的方式来访问不同的输入/输出源。stram是从起源(source)到接收的(sink)的有序数据。注:java把所有的转载 2018-01-12 20:33:14 · 307 阅读 · 0 评论 -
HashMap的一些面试题
LZ在这里总结了一些关于HashMap的面试题HashMap 中的 key 如果是 Object 则需要实现哪些方法?hashCode 方法和 equals 方法。 因为 hashCode 方法用来计算 Entry 在数组中的 index 索引位置,equals 方法用来比较数组指定 index 索引位置上链表的节点 Entry 元素是否相等。否则由于 hashCode 方法实现不恰当会导致严重的原创 2018-01-04 21:58:05 · 777 阅读 · 0 评论 -
二叉树的最小深度
求一棵树的最小深度我在这里给出了三种语言的解法。 Java versionpublic int minDepth(TreeNode root) { if (root == null) return 0; int L = minDepth(root.left), R = minDepth(root.right); return 1 + (Math.min(L, R) > 0原创 2018-01-05 11:19:25 · 221 阅读 · 0 评论 -
约瑟夫环问题
第一次参加CCF的时候,也想用linkedList来实现这个来着,可惜当时时间紧张,最后还是强行写了一个双向循环链表 最后 一个一个的删除元素,这样的利用原理来实现是最简单简洁的 “` public class 约瑟夫环 {public static void main(String[] args) { // TODO Auto-generated method stub y原创 2018-01-06 22:29:11 · 212 阅读 · 0 评论 -
再探HashMap
HashMap的底层原理当我们往 HashMap 中 put 元素时,先根据 key 的 hash 值得到这个 Entry 元素在数组中的位置(即下标),然后把这个 Entry 元素放到对应的位置中,如果这个 Entry 元素所在的位子上已经存放有其他元素就在同一个位子上的 Entry 元素以链表的形式存放,新加入的放在链头,从 HashMap 中 get Entry 元素时先计算 key 的 h原创 2018-01-07 12:01:09 · 208 阅读 · 0 评论 -
Max Sum of Rectangle No Larger Than K
title: 363.Max Sum of Rectangle No Larger Than K date: 2018-2-7 21:48:38 categories: - algorithm tags: - algorithm - java - leetcodeGiven a non-empty 2D matrix matrix and an原创 2018-02-07 21:30:53 · 205 阅读 · 0 评论 -
leetcode-backtracking
title: leetcode backtracking date: 2017-10-30 21:48:38 categories: - algorithm tags: - algorithm - java - leetcode摘要:回溯法 回溯法 记录一下这道题的解题思路,刚开始我也不会啊:cry: 在每种局面下,原创 2018-02-07 21:31:51 · 218 阅读 · 0 评论 -
数组和集合之间关系
数组和List、Set都可以存放多个元素,数组的特点是长度固定,访问速度非常快,元素类型单一;List的特点是长度可以动态增加,能够维护元素的次序,存入的所有元素都当做Object,允许元素重复;Set的特点是长度可以动态增加,能够保证元素不重复,存入的所有元素都当做Object。本节实例介绍Set、List和数组之间如何转换,将Set、List对象中的元素转换为数组,将数组转换为Set、List对原创 2017-12-24 12:36:48 · 1472 阅读 · 0 评论