tsvico的博客

好的代码像粥一样,都是用时间熬出来的

  • HashMap中的位运算
  • 准备用HashMap存1w条数据,构造时传10000还会触发扩容吗
  • HashMap源码分析
  • HashMap为何从头插入改为尾插入
  • HashMap在Jdk1.7和1.8中的实现
  • 面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别
  • 由HashMap哈希算法引出的求余%和与运算&转换问题
阅读全文 »

前言

在Java中,我们可以利用多线程来最大化地压榨CPU多核计算的能力。但是,线程本身是把双刃剑,我们需要知道它的利弊,才能在实际系统中游刃有余地运用。

阅读全文 »

记一个字母大小写转换

我们常见的大小写转换

1
2
3
4
5
6
7
8
9
10
private static void change(char c) {
//如果输入的是大写,+32即可得到小写
if(c>='A' && c<='Z'){
c+=32;
System.out.println(c);
}else if(c>='a' && c<='z'){ //如果输入的是小写,-32即可得大小写
c-=32;
System.out.println(c);
}
}

我们不常见的↓

阅读全文 »

java输出流写入

在使用mysql的select * from a into outfile 'E:\\a.csv' character set utf8,如果字段中有换行,会被转义成\\n,Tab转义为\\t,无法正常处理数据文件,使用java处理该文件,有一个现象,写入文件尾会出现’\u0000’乱码,乱码数量取决于定义的buff大小

阅读全文 »

网有很多关于该部分的内容,但大部分都是教怎返回json字符串而不是通过配置实现返回json格式的对象。而在现实开发中,大部分都用ajax来请求后端,而得到对象的json数据,比如微信小程序和angularjs等。废话有的多,下面开始,在此仅作整合参考。

1.肯定是引入所需要的jar包

我自己用的是阿里的FastJson,网上还有很多用jackson
maven依赖如下:

1
2
3
4
5
6
!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>
阅读全文 »

前言

秒杀业务为什么难做?例如,小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万;12306抢票,票是有限的,库存一份,瞬时流量非常多,都读相同的库存。读写冲突,锁非常严重,这是秒杀业务难的地方。

阅读全文 »

前言

代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。

代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。

阅读全文 »

本次设计是一个简易的局域网聊天,功能设计主要分为群聊和私聊两部分,每部分都支持基础聊天以及文件传输功能,私聊页面相较于主页面支持更多功能,例如表情发送、窗口抖动,语音聊天等。参考了《Qt及Qt Quick开发实战精解》中第5章群聊实例,在群聊的基础设计了私聊这部分内容以及其他一些功能。下面介绍下整体的设计以及实现。

本文档将依据启动次序来写

阅读全文 »