老码农间接性感慨
这十年的互联网环境,真是风云莫测,有些曾经非常风光的东西,
比如 Ruby on rails,Django,Play framework,Struct,Express , Jquery,Dubbo,
到现在已经消声灭迹,有些依然常青不老,比如:Spring mvc,Spring boot,Spring cloud,Mybatis,Node,Vue,Reactjs, 有些东西不是最好的,
比如:Java,centOS,
却活得最好, 有些 ... 阅读全文
Java 的孤岛现象
Java 是会自动内存回收的,程序员可以通过 System.gc() 来发出内存回收的指令, Jvm 收到此类的指令后,会及时尽可能把用完的对象进行回收。
另外有一种不是很正式的概念,就是孤岛,多个对象相互关联起来,为成为一个“岛”对象,比如:
Dog dog1= new Dog(1);
Dog dog2 = new Dog(2);
Dog dog3 = new Dog(3);
dog1=dag2;
dog2=dag3; ... 阅读全文
MyBatis 自定义通用 Mapper
Mybatis 提供自动生成 Mapper 的工具,看看生成的 Mapper,不是尽如人意,比如多表关联和返回的数据类型和传入参类型上。一直想写一个通用的 Mapper,传参类型是 Map,返回 Map 类型;大体分两种数据库操作 DDL 和 DML 操作,而且 DML 分别提供获取一条记录和多条,插入一条记录,批量插入记录,更新,删除一条记录。其中 DDL 是参考 ... 阅读全文
JFinal 使用 HikariCP 数据库连接池
看了HikariCP 的源码,比较感兴趣,想在 JFinal 中集成这样的数据库连接池,发现并没有支持的插件,于是自己动手尝试写了 JFinal HikariCPPlugin
插件
,得益于 JFinal 这么简洁的架构,几分钟时间就测试出炉了,肉眼测试,不严谨,如果有什么不妥的地方,希望网友补充斧正吧!
直接上代码,是程序员最喜欢干的事情:
package com.jfi ... 阅读全文
Java Map 按 key 升序排序
最近开发微信和支付宝的
服务端
支付,涉及到字典的排序和 url 参数转换成字典的操作,整理了一个工具类:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.uti ... 阅读全文
移动终端和 Java 服务端数据传输封装类
移动互联时代,常常碰到的是移动终端和服务端数据交互。终端把某种形式的数据传递给服务端,服务端收到数据后,需要根据双方约定的数据格式,取值再做处理。
传递的数据有哪些形式?一般分成三种形式
1:JSON 的流形式
2:纯粹的键值对形式
3:键值对和文件流并存的形式
其实 2-3 可以合并成一种形式来处理,以下将以 Java 服务端情况 ... 阅读全文
分布式部署一点理解
一个服务器硬件资源足够强(比如 CPU 内存 SSD磁盘 配置都很优秀),也难免有瓶颈的时候,理论上说,一个单机服务器,并发量是有限的,以 Linux 服务器为例,即使 CPU 有无数个,核心顶配,内存同样很大,SSD磁盘很快,最终也会遇到连接数爆棚的时候,这时,以上的配置都没有用武之地了,因为 Linux 服务器是有最大连接数的,同一个时 ... 阅读全文
Java 用一条语句搞定 Map 和 List 的定义和赋值
Java 里 Map 和 List 一般都先定义(初始化),然后赋值,最后使用的,有时候常量类里,想定义一个 Map 或 List 常量,上面说的做法就不适用了,有没有一个语句就同时搞定他们的定义和赋值呢?
这样做是可以的,请看代码:
Map 的例子:
@SuppressWarnings("serial")
Map
wallet_type_map = new HashMap
() {{
put(1, "担保金(充值) ... 阅读全文
Eclipse 常用的快捷键
查看资源:
1. Ctrl+Shift+R:打开资源
这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。
2. Ctrl+shift+T: 打开类型(Open type)。
如果你不是有意磨洋工,还是忘记通过源码 ... 阅读全文
Java 中级开发笔记试题
Java 中级开发笔记试题,网上摘录,不提供大概,纯粹学习用途。
一、 填空题(40分)
1. 打印 b 的值为?
String a = "abv";
String b = a;
a = null;
System.out.println(b);
2. 线程 Thread 有几种状态
3. Vetor 和 ArrayList 有什么区别? Enumeration 和 Iterator 有什么区别?
4. TCP 连接发生几次握手,断开连接呢?
5. Java.ut ... 阅读全文
Java 的可变函数另类使用
Java 的可变函数的使用,以前局限于传人零散的参数,当然参数是不会局限数量的,这是可变参数函数的便捷性。如:
package com.5_wow.utils;
public class JavaTest {
public static void main(String[] args) {
System.out.format("传人可变参数,结果:%d \n", Add(1, 2, 3, 4, 5));
}
public static Integer Add(Integer... args) { ... 阅读全文
Java 8 在 Ubuntu 14.04 上的时间偏差
最近升级 Java 到 8;不幸遇到一个问题:时间比真实时间晚点了2个小时,折腾了很久,终于找到问题了。网络上有的说晚了 8 小时,我这里确实 2 小时;可能服务位置的差异。
问题的根源是Java 8 的默认时区的问题,需要给 jvm 显性指定 自己的时区,以下配置代码只适合 Linux 的:
export JAVA_HOME=/usr/java/jdk1.8.0_72
export CLASS ... 阅读全文
Ubuntu Debian 快速安装 Java 环境
Java 的安装很简单,总结说只有两步即可完成:
1. 官网下载对应版本的压缩文件
2. 系统上配置关联
闲话不说了,以 jdk 8u65 为例子,直接到官网 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载压缩文件,因为系统是 Ubuntu 14.04 64位的版本,所以选择了 jdk-8u65-linux-x64.tar.gz 压缩 ... 阅读全文
Tomcat 8.0 同一个项目部署多个服务
看标题有点奇怪,同一个项目为什么部署多个服务?实际场景是这样的,Java 开发了一个 reset api 接口项目,部署到一个资源相当富裕的服务器上,单单使用一个 tomcat 跑 Java 项目总会遇到瓶颈,打个比方说,县城里只有一条高速,进城的车子来来往往,遇到赶集,车子越来越多,结果只能排成长龙车头车尾缓缓而行。但如果富裕的县城拥有 ... 阅读全文
Java 的异步线程片段使用
一个大操作,有多个子操作时,子操作有优先等级,和时间关系不太大,这时可以用上 Java 的异步线程来做了,特别有些不太重要又非常耗时的子操作,使用以下代码很适合:
new Thread() {
@Override
public void run() {
// TODO: 和时间关系不大,但又很耗时的子操作
}
}.start();
这种做法虽然很零碎,但很管用! ... 阅读全文
第 1 页 共 1 页