随笔分类 -  java

摘要:什么是序列化反序列化? Java序列化是将对象转换为字节流的过程,因此我们可以将其存储在磁盘上或通过网络发送。 反序列化是相反的过程–将字节流转换为内存中的对象。 序列化过程 在序列化期间,java运行时将版本号与每个可序列化的类相关联,此数字称为 serialVersionUID。 在反序列化期间 阅读全文
posted @ 2020-03-31 00:55 yansum 阅读(1609) 评论(0) 推荐(0) 编辑
摘要:1、top找出耗时pid进程或ps -ef |grep xxx 找出pid 2、ps p 3036 -L -o pcpu,pid,tid,time,tname,cmd 3036为pid 3、printf "%x\n" 3046 4、jstack -l 3046 3、printf "%x\n" 304 阅读全文
posted @ 2018-04-16 21:18 yansum 阅读(235) 评论(0) 推荐(0) 编辑
摘要:最近有一个用java获取mp3播放时长的需求,有两种,一种本地文件,一种网络文件,其中获取网络mp3播放时间的方法找了挺久终于找到个能用的了。 第一种很简单,下载个jar包 jaudiotagger.jar 第二种,网络地址引入 jl1.0.1.jar 阅读全文
posted @ 2017-03-28 00:55 yansum 阅读(9019) 评论(1) 推荐(0) 编辑
摘要:用jdk提供的javap工具了解java编译器的机制。 1、javac Cat.java 2、javap -c Cat.class 3、当创建任何java对象时,程序总会先一次调用每个父类非静态初始化块、父类构造器(总是从Object开始)执行初始化,最后 才会调用本类的非静态初始化块、构造器执行初 阅读全文
posted @ 2016-12-18 15:21 yansum 阅读(259) 评论(0) 推荐(0) 编辑
摘要:2、乐观锁和悲观锁 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先 阅读全文
posted @ 2016-11-23 16:32 yansum 阅读(185) 评论(0) 推荐(0) 编辑
摘要:1.线程的概念 线程是系统中最小的执行单元,同一进程有多个线程,多个线程共享进程的资源。 线程调用yield()方法使线程从运行状态转入可运行状态,让出资源; 阅读全文
posted @ 2016-11-23 15:51 yansum 阅读(114) 评论(0) 推荐(0) 编辑
摘要:1、缓冲输入文件 2、从内存输入 3、格式化的内存输入 4、基本的文本输出 示例: 阅读全文
posted @ 2016-11-22 23:45 yansum 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2016-11-21 17:14 yansum 阅读(104) 评论(0) 推荐(0) 编辑
摘要:“泛型”这个术语的意思就是:“使用与许多许多的类型”。泛型在编程语言中出现时,其最初的目的是希望类或方法能够具备最广泛的表达能力。如何做到这一点呢,正是通过解耦类或方法与所使用的类型之间的约束。 在你创建参数化类型的一个实例时,编译器会为你负责转型操作并保证类型的正确性。看一个例子: public 阅读全文
posted @ 2016-11-21 15:25 yansum 阅读(217) 评论(0) 推荐(0) 编辑
摘要:一般来说,正则表达式就是以某种方式来描述字符串,因此你可与说:"如果一个字符串符合有这些东西,那么它就是我正在找的东西。 1、要找一个数字,如果它可能有一个负号在最前面(可能没有,没有也是匹配的),那么久这样写:-? 2、要描述一个整数,你可以说它有一个或多个阿拉伯数字。 此时可以用\d表示一位数字 阅读全文
posted @ 2016-11-20 16:06 yansum 阅读(226) 评论(0) 推荐(0) 编辑
摘要:为了提高效率,可以使用StringBuffer或StringBuilder 阅读全文
posted @ 2016-11-19 20:59 yansum 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2016-11-19 17:53 yansum 阅读(151) 评论(0) 推荐(0) 编辑
摘要:Random rand = new Random(47); Map m = new HashMap(); for(int i=0;i<10000;i++){ int r= rand.nextInt(20); Integer freq =m.get(r); m.put(r,freq==null?1:freq+1); } System.... 阅读全文
posted @ 2016-11-19 14:20 yansum 阅读(220) 评论(0) 推荐(0) 编辑
摘要:2.应用 阅读全文
posted @ 2016-11-19 14:10 yansum 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2016-11-19 13:44 yansum 阅读(156) 评论(0) 推荐(0) 编辑
摘要:Map map = new HashMap(); List list = new ArrayList(); list.add("565"); map.put("key", "value"); Iterator it =map.keySet().iterator(); while(it.hasNext()){ ... 阅读全文
posted @ 2016-11-19 13:20 yansum 阅读(110) 评论(0) 推荐(0) 编辑
摘要:(完全解耦)策略设计模式: 阅读全文
posted @ 2016-11-18 20:12 yansum 阅读(124) 评论(0) 推荐(0) 编辑
摘要:多态是一种将改变的事物和未变的事物分离开来的重要技术。 阅读全文
posted @ 2016-11-17 16:37 yansum 阅读(112) 评论(0) 推荐(0) 编辑
摘要:1. 在执行速度方面的比较:StringBuilder > StringBuffer 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。3 阅读全文
posted @ 2016-11-17 16:15 yansum 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2016-11-17 16:12 yansum 阅读(90) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示