
java基础
哈哈哈哈哈哈哈111
这个作者很懒,什么都没留下…
展开
-
LongAdder源码分析
只需要实现session监听器,然后再根据具体逻辑进行操作://统计当前在线用户个数public class UserCountListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent se) { ServletContext context = se.getSess原创 2015-07-16 14:24:13 · 2998 阅读 · 0 评论 -
hashMap实现原理
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难转载 2016-10-13 11:02:07 · 244 阅读 · 0 评论 -
java异常在实际开发中的应
做开发一段时间的人都知道,某c++大神和java大神互相撕逼,针对异常吐口水!对于这些大神,我不做任何评论,因为对于他们,我只能仰望以及表达我的尊敬,但是,异常时java的一大特色,用好了受益匪浅!不瞎扯了,开始写用法,这里控制层用的spring mvc!思考问题,我们如何做才能使得service层彻底处理所有业务逻辑从而基本实现service和controller层的完全解耦?所有做过开原创 2015-07-24 13:45:28 · 3179 阅读 · 0 评论 -
jdk动态代理拦截方法
public interface Interceptor { /** * 前置操作 */ void before(); /** * 后置操作 */ void after();}/** * service方法拦截器 */public class ServiceInterceptor impleme原创 2016-11-08 11:51:38 · 1374 阅读 · 0 评论 -
java文件路径问题及getResource和getClassLoader().getResource的区别
我们经常在java的io操作中读取文件,先看一个场景:这样是读不到这个file文件的,会发生filenotfoundexception如果我把文件放到了src/main/java下呢,还是会发生filenotfoundexception。这里就涉及到一个java编译时的问题,请看图:如果我的:File f = new File("F:\\bi\\Generate原创 2016-10-21 11:02:52 · 10003 阅读 · 0 评论 -
Java 并发工具包 java.util.concurrent 用户指南
译序本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新:http://tutorials.jenkov.com/java-util-concurrent/index.html。本指南已做成中英文对照阅读版的 pdf 文档,有兴趣的朋友可以去 Java并发工具包java.util.concurrent用户指南中英文对照阅读版.pdf[带书签] 进行下载。转载 2015-10-29 14:47:28 · 2143 阅读 · 0 评论 -
设计线程监控代码结构
线程监控:/** * 线程状态的监控 * @author dell * */public class Test5 extends RunnableWrapper { @Override public void handler() { System.out.println("xxxxxx"); } public static void main(String[] arg转载 2015-10-29 14:19:04 · 1973 阅读 · 0 评论 -
多线程卖票,死锁问题和生产者消费者问题!
1.生产者消费者问题模拟:public class Test2 { public static void main(String[] args) { Num num = new Num(0); Test2 lock = new Test2(); ConsumerTask ct = new ConsumerTask(num, lock); Consumer c1 = new原创 2015-10-29 13:05:36 · 2053 阅读 · 1 评论 -
java的calendar类常见日期处理
/** * 得到当前月的上一个月,返回2016-06这样的字符串 */ public static String getLastMonth() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, -1); SimpleDateFormat form原创 2016-08-24 10:58:45 · 5902 阅读 · 0 评论 -
常用正则表达式
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:var reg = /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2})$/; v转载 2017-08-24 10:40:38 · 586 阅读 · 0 评论 -
常用lambda表达式
package othertest;import org.junit.Before;import org.junit.Test;import org.springframework.test.context.TestPropertySource;import java.util.*;import java.util.function.Function;import java.ut...原创 2018-08-31 15:42:43 · 667 阅读 · 0 评论 -
关于jdbc向mysql和postgresql批量插入大量数据时候的优化!
1.对于mysql数据库,driverurl中加入:allowMultiQueries=true&rewriteBatchedStatements=true; 这样在使用jdbctemplate插入的时候,类似:private void insertData(JdbcTemplate insertJdbcTemplate, String insertCoreSql, List<...原创 2019-03-13 16:05:34 · 6502 阅读 · 2 评论 -
关于一条sql从mysql或postgresql等数据库中查出大量数据而不造成内存溢出的方法
场景:我们在做大量数据导出的时候,单条sql导出几千万级别以上数据容易造成内存溢出,采用limit有时候也不方便,而且如果在数据仓库中做这种操作的时候,复杂sql可能会很慢,这样分成limit后,每条sql都执行几分钟,那效率可也太低了。解决关键: jdbc驱动的fetchsize,然后查询使用resultset遍历1.对于mysql,我们只需要在driverurl后面加上:useCurs...原创 2019-03-13 16:27:48 · 4590 阅读 · 0 评论 -
HashTable分析
Java Hashtable分析Hashtable的结构,采用的是数据结构中所说的链地址法处理冲突的方法 从上面的结构图可以看出,Hashtable的实质就是一个数组+链表。图中的Entry就是链表的实现,Entry的结构中包含了对自己的另一个实例的引用next,用以指向另外一个Entry。而图中标有数字的部分是一个Entry数组,数字就是这个Entry数组的index。那么转载 2016-10-13 10:55:36 · 264 阅读 · 0 评论 -
关于hashcode和equals方法重写的一些理解!
Java中的集合(Collection)有两类,一类是List,再有一类是Set。 前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么我们怎么判断两个元素是否重复呢? 这就是Object.equals方法了。通常想查找一个集合中是否包含某个对象,就是逐一取出每个元素与要查找的元素进行比较,当发现某个元素与要查找的对象进行equals方法比较的结果相等时原创 2015-06-13 10:17:21 · 2109 阅读 · 0 评论 -
最精简的java 线程池与任务队列
import java.util.*; public class WorkQueue { private final int nThreads;// 线程池的大小 private final PoolWorker[] threads;// 用数组实现线程池 private final LinkedList queue;// 任务队列转载 2015-08-10 09:39:00 · 1637 阅读 · 1 评论 -
java正则表达式捕获组
Java中使用正则表达式返回符合正则表达式的字符串就要用到group(),group中记录了所有符合指定表达式的字符串。本文通过一段代码讲解如何使用group()。public static void main(String[] args) { Pattern p = Pattern.compile("(\\d+,)(\\d+)"); String s = "123,456-34,原创 2015-08-10 14:40:04 · 6258 阅读 · 0 评论 -
一个Socket连接管理器(心跳机制)
为了方便开发人员使用,我在闲暇之余写了一个简单的Socket连接管理的处理程序,程序简单仅供参考!其他更多精彩,请你访问我的博客:http://cuisuqiang.iteye.com/ 处理机说明:读取配置文件,根据配置文件信息保持一个连接配置变量集合。根据连接变量集合初始化相应的连接。启动一个线程,处理检查连接的有效性,处理方法是发送心跳包,如发转载 2015-08-31 15:29:20 · 2437 阅读 · 0 评论 -
java删除文件,并删除文件夹下指定文件
public static boolean deleteFile(File file) { if(file.isDirectory()) { String[] childrenFiles = file.list(); for(int i = 0; i < childrenFiles.length; i++) { boolean success = deleteFile(ne原创 2015-09-06 14:05:17 · 3067 阅读 · 0 评论 -
fastjson的部分使用
常用类型类型一:JavaBean类型二:List类型三:List类型四:List>将上面的四种数据对象转换成json字符串的方法都是一样的String jsonString = JSON.toJSONString(obj);方法/步骤1将json字符串转化成JavaBean对象Person pe转载 2015-08-21 14:37:14 · 1900 阅读 · 0 评论 -
java+内存分配及变量存储位置的区别
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中(new 出来的对象)转载 2015-10-28 14:27:25 · 1514 阅读 · 0 评论 -
java读取文件大全
1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileN转载 2015-11-19 17:43:09 · 1480 阅读 · 0 评论 -
java获取客户端ip地址
private String getIpAddr(HttpServletRequest request) { String ipAddress = null; // ipAddress = this.getRequest().getRemoteAddr(); ipAddress = request.getHeader("x-forwarded-for"); if (ipAddres原创 2016-05-04 11:33:02 · 443 阅读 · 0 评论 -
文章收集!
Spring IOC的简单实现(附demo) http://m.blog.youkuaiyun.com/article/details?id=44173631spring生命周期 http://997004049-qq-com.iteye.com/blog/1729793servlet托管spring进行管理 http原创 2016-05-27 11:05:48 · 445 阅读 · 0 评论 -
java代码初始化顺序
看完深入理解jvm后,对java初始化有很多疑惑,这里记一个笔记:/** * 打印结果1 2 * 结论:在调用静态方法前,如果类内部有该类的静态声明,则会先初始化静态声明 * @author t6 * */public class TestStaticFunction1 { public TestStaticFunction1() { Sys原创 2016-09-26 12:34:25 · 349 阅读 · 0 评论 -
聊聊Greenplum的那些事
开卷有益——作者的话有时候真的感叹人生岁月匆匆,特别是当一个IT人沉浸于某个技术领域十来年后,蓦然回首,总有说不出的万千感慨。笔者有幸从04年就开始从事大规模数据计算的相关工作,08年作为Greenplum 早期员工加入Greenplum团队(当时的工牌是“005”,哈哈),记得当时看了一眼Greenplum的架构(嗯,就是现在大家耳熟能详的那个好多个X86框框的图)...转载 2019-03-28 19:51:19 · 1636 阅读 · 1 评论