
杂七杂八
文章平均质量分 74
三思_1234
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
阅读阿里巴巴Java开发手册,截取一些需要注意的地方
原文出自 阿里巴巴Java开发手册,禁止用于商业用途,违者必究【推荐】集合初始化时,指定集合初始值大小。 说明:HashMap 使用 HashMap(int initialCapacity) 初始化, 正例:initialCapacity = (需要存储的元素个数 / 负载因子) + 1。注意负载因子(即loader factor)默认为 0.75,如果暂时无法确定初始值大小,请设置为 16(即...转载 2018-02-27 16:44:28 · 308 阅读 · 0 评论 -
短链接实现方法
短链接只有十几位,有时候却可以代替几十位上百位字母的url进行使用,之前一直没注意,今天想起来研究一下。略微搜索资料,发现短链接并不是包含了原来几十位上百位的url的全部信息,而是短链指向一个跟你原链接可能完全不同的IP,短链中携带的参数经这个IP的服务解析后,或是还原,或者根据key找value,得到短链所代表的原链接,再发送301重定向请求,指向你所想请求的正式地址。例如: www.t.cn...原创 2018-07-09 17:13:15 · 3260 阅读 · 1 评论 -
Java面试内容整理
只是方向上的整理,不涉及到具体的问题和答案。Java基础: 1. 数据结构: a) HashMap b) ArrayList和LinkedList c) TreeSet 2. JVM原理: a) GC机制 b) 如何调优 3. 多线程:...原创 2018-05-23 16:38:18 · 212 阅读 · 0 评论 -
JDK8相关:Collection类stream()+filter()+forEach()方法的联合使用
List<String> strArr = Arrays.asList("1", "2", "3", "4"); strArr.stream().filter(str ->{ return "2".equals(str)?true:false; }).forEach(str ->{原创 2018-05-22 15:41:18 · 26175 阅读 · 0 评论 -
JAX-RS规范-常用注解浅析
一、@Path 若希望一个Java类能够处理REST请求,则这个类必须至少添加一个@Path("/")的annotation; 对于方法,这个annotation是可选的,如果不添加,则继承类的定义。(1)@Path里的值可以是一个复杂的表达式,例如@Path("{id}") ,其中 {id}表达式代码了一个模板参数; 一个模板参数是一个定义在@Path里的通配符,它以 { 开...转载 2018-05-22 10:37:01 · 1399 阅读 · 0 评论 -
JDK8特性:lambda表达式简单使用介绍
新公司的代码中很多使用的 -> 这样的写法,看得我一脸懵逼,查了一下才知道这事JDK8提供的新特性,lambda表达式,在一定程度上可以简化某些代码的写法,下面我们就来一起看一下。1.对匿名内部实现的支持: 在java中使用多线程,一般会添加一个java类实现Runable接口或者继承Thread类。也还有一种比较粗暴的方式就是创建匿名内部类,如://标准写法 ...原创 2018-05-21 17:24:23 · 520 阅读 · 0 评论 -
jvm内存分区和GC机制详解:一
按照对象的生存与回收进行划分: 首先明确,这一部分都是在jvm的堆上进行操作的,jvm对所有的线程提供同一个堆供其进行操作,而为每一个线程单独分配一个栈供其使用。 所以堆内存中所有的数据是线程们都可以进行操作的,而且也因为jvm只提供了一个堆内存,才有了jvm独特的GC机制和堆内存的划分。(图来自 https://www.cnblogs.com/ygj0930/p/6522828.ht...原创 2018-04-27 18:14:45 · 1746 阅读 · 0 评论 -
Mybatis动态代理源码解读一
Mybatis的使用只需要创建一个DAO层接口,配合相应Mapper.xml的sql文件以及配置即可使用。那么到底是什么力量让没有手动实现的接口完成了对数据库的链接、查询、数据组装等工作了,这篇文章主要就是沿着Mybatis的源码分析一下这个问题。从Mybatis的入门开始,最简单Mybatis初始化代码需要一个mybatis-config.xml的配置文件来构建一个叫做SqlSessionFac...原创 2018-04-18 00:06:54 · 3275 阅读 · 0 评论 -
简单抢购系统设计
面试或者工作中经常能遇到类似于抢购或者是并发争夺默写限量资源的需求,有一些想法但是比较乱,这里刚好整理一下。一个抢购活动主要由这几部分组成 1.页面刷新-刷新时间/可购买数量 2.下单-争夺购买资格 3.支付-更新订单状态页面刷新处理办法: 1.页面静态化 2.反向代理缓存静态页面 3.所需动态参数通过接口获得,不要经过框架渲染 4...原创 2018-04-16 22:50:08 · 2251 阅读 · 1 评论 -
简单的多生产多消费模式代码
资源描述类:/** * 资源描述类 * @author gaojh * */public class Product { List<String> product = null; public Product() { super(); this.product = new ArrayList<>(); } /** * 生产方法 *...原创 2018-04-16 16:25:25 · 331 阅读 · 0 评论 -
ConcurrentHashMap与HashMap的区别,以及怎么简单自己实现ConcurrentHashMap
1.HashMap是线程不安全的,所以效率相对于HashTable较高。HashTable是线程安全的,所以相对于HashMap效率较低。2.ConcurrentHashMap可以看作是HashMap的线程安全版本,但是内部实现机制与HashTable不同。在不同版本的JDK中有不同的实现。3. HashMap的键值对允许有null,但是ConCurrentHashMap都不允许。HashTabl...原创 2018-04-08 18:57:02 · 1107 阅读 · 0 评论 -
mybatis面试题
Mybatis技术内幕系列博客,从原理和源码角度,介绍了其内部实现细节,无论是写的好与不好,我确实是用心写了,由于并不是介绍如何使用Mybatis的文章,所以,一些参数使用细节略掉了,我们的目标是介绍Mybatis的技术架构和重要组成部分,以及基本运行原理。博客写的很辛苦,但是写出来却不一定好看,所谓开始很兴奋,过程很痛苦,结束很遗憾。要求不高,只要读者能从系列博客中,学习到一点其他博客所没有的技...转载 2018-02-24 15:54:00 · 199 阅读 · 0 评论 -
spring面试题
1.谈谈你对spring IOC和DI的理解,它们有什么区别?IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spring框架管理,简单说,就是创建UserService对象控制权被反转到了Spring框架DI:Dependency Injection 依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对...转载 2018-02-24 15:51:14 · 360 阅读 · 0 评论 -
HashMap与HashTable的区别
线程安全 HashMap线程不安全而HashTable线程安全 也可以通过以下代码将hashMap转化为线程安全的实现: HashMap test = new HashMap(); Map synchronizedMap = Collections.synchronizedMap(test); ...原创 2019-04-16 11:41:26 · 481 阅读 · 0 评论