- 博客(19)
- 资源 (15)
- 收藏
- 关注
原创 FutureTask相关
FutureTask类实现了RunnableFuture接口,RunnableFuture接口继承了Future和Runnable两个接口,所以FutureTask可以当成线程执行。FutureTask持有一个Callable属性,FutureTask的两个构造方法都跟这个Callable属性相关。 第一个构造方法直接接收一个Callbale对象: public FutureTask(
2017-03-22 17:29:44 245
原创 多线程基础
多线程的最底层依赖于Unsafe的compareAndSwap(CAS)和LockSupport的park和unpark操作。cas需要传递两个参数:expect和update。先跟第一个参数expect进行比较,如果等于第一个参数,那么就将该值设置为第二个参数,这是由硬件提供的原子操作,所以不会存在并发问题。cas会返回一个boolean值表示这次更新是否成功,通常会用循环去不断的尝试
2017-03-20 09:52:03 215
原创 ThreadLocal的理解
许多人喜欢把ThreadLocal和多线程放在一起,其实这两者并没有太大的联系。ThreadLocal其实是提供了一个线程范围的上下文引用。如果你需要在两个没有关联的对象或者两个不互相调用的平行的方法之间共用一些线程级别的参数,那么就可以使用ThreadLocal。 从内存角度理解的话,其实一个线程就是一个虚拟机栈中的栈,这个线程调用的方法就是这个栈的栈帧。线程对方法的开始调用和调用
2017-03-20 09:39:32 301
原创 web中的乱码问题
在web编程中,参数传递中文乱码问题是一个经常出现的问题,前两天又碰到了乱码问题,查了一堆资料,趁还没忘记整理下,以备以后使用。众所周知,web请求有两种形式,get和post。接收端对编码有影响的有以下几种:1、request.setcharacterencoding("utf-8");2、在web.xml中配置characterEncodingFilter过滤器,其本质跟1是一样的
2016-08-15 23:21:28 256
原创 Head First设计模式整理
最近看了head first的设计模式颇有心得,赶紧趁热整理下,便于以后观看。运用设计模式的最基本的思想其实是眼光,因为设计模式的使用并不能帮助你简化该功能的实现,相反经常会让这个功能的实现变得更复杂。因为使用设计模式是为了让代码更加健壮和更有弹性。说白了就是让以后更好的维护和扩展。当你写代码的时候开始想我这样写如果以后要改了好不好改,如果要增加一个功能好不好增加的时候你就开始进入设计模式的大
2016-08-07 22:57:11 2216
转载 java IP相关计算
此文转载至:http://blog.csdn.net/yanfan0916/article/details/8577787 package com.metarnet.util;public class IPPoolUtil { public static void main(String[] args) { System.out.println(getNetMask("255.
2013-08-30 14:55:42 684
转载 IP和子网掩码
本文转载至http://blog.163.com/xiaopengyan_109/blog/static/14983217320108763946607/ip地址 子网掩码 2010-09-07 18:42:06| 分类:默认分类 | 标签:|字号大中小订阅 ip地址的编码分为两部分:网络号和主机号,不过,是要和“子网掩码”按位与上之后才能区分哪些是网络
2013-08-30 11:44:37 445
原创 thinking in java 学习5
关于在编程中是否使用继承:在面向对象的编程中,判断是否需要使用继承时,就问一下你是不是需要把新类向上转型为基类,如果你必须向上转型,那么继承就是必须的,如果不需要,那么就该再看看是不是应该用继承了。Final关键字:(final表示不变,static表示只有一个)Final的数据:final修饰的数据称为常量。常量能用于下列两种情况:1、可以是“编译时的常量”,这样就再也不能改了。
2013-08-12 13:51:09 525
原创 thinking in java 学习4
this关键字:java如何判断是哪个对象调用了类的方法呢?事实上编译器暗中做了许多事情。调用方法的那个对象的引用会被当做一个非常重要的参数传给对象所调用的方法。如Test t1 = new Test(), t2 = new Test(); t1.test();t2.test();实际上在编译器内部这两个方法调用就成了Test.test(t1);Test.test(t2);假设你想在方
2013-08-08 16:11:12 492
原创 Thinking in java学习3
位运算符:位运算符能让你逐位操控基本类型的数据。两个参数的相对应的各位分别进行布尔运算,其结果就是位运算的结果。与运算符(&):输入位都是一则返回一,否则为零(只要有0就返回0)或运算符(|):输入的两位当中只要有一个一,则返回一,否则返回0(只要有1就返回1)异或运算符(^):输入的两位中有且只有一个一,则返回一,否则返回0(相同为0,不同为1)非运算符(~):这是一个单元运算符
2013-08-07 15:11:04 473
原创 Thinking in java学习2
数据存在哪里:1、寄存器(registers)。这是反映最快的存储,因为它所处位置不同:在处理器里。不过寄存器的数量非常有限,所以它是由编译器分配的。你非但不能直接控制寄存器,甚至连它在的证据也找不到。2、栈(stack)。位于"常规内存区"里,处理器可以通过栈指针对他进行直接访问。栈指针向下移就创建了新的存储空间,向上移就释放内存空间。只是仅次于寄存器的最快、最有效率的分配内存的方法。由
2013-08-06 18:54:36 500
原创 Thinking in java学习1
Smalltalk的五项基本特征:1、万物皆对象。将对象想成一种特殊的变量(对象也是一种变量);它存储数据(对象的属性),而且还可以让你“提要求”,命令它进行某些操作(对象的方法)。从理论上讲,你可以把所有待解决的问题中的概念性组件(狗,建筑,服务等)都表示成程序里的对象。2、程序就是一组相互之间传递消息,告诉对方该干些什么的对象。你只要向那个对象“发一个消息”,就能向他提出要求。更确切的
2013-08-06 10:55:22 516
转载 java多线程与并发总结
此文转载于http://www.cnblogs.com/yshb/archive/2012/06/15/2550367.html1. 计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的
2013-07-31 14:35:37 700
原创 java动态代理
关于java代理,我觉得一种比较形象的解释就是明星和经纪人。明星的主要任务是唱歌和演戏,如果所有的事都由明星来做那么明星就会累死,所以需要一个经纪人来帮他分担其他的任务。这也正是java所倡导的单一职责原则:一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的
2013-07-30 16:51:03 540
原创 java反射
惭愧啊惭愧,搞了这么久才回头看看反射这个神器,看样子有必要再把java基础好好研究研究啊!个人感觉java反射涉及到的几个关键的类就是java.lang.Class、java.lang.reflect.Method、java.lang.reflect.Field三个类。Class类可以获取到class对象的所有相关信息,包括公有、私有的属性和方法以及父类的信息和方法。Class的几个比
2013-07-30 14:26:30 550
转载 struts2源码阅读2
本来想自己整理StrutsPrepareAndExecuteFilter过滤器的,但是看网上已经有很多关于这个类的解释了,这里引用其中的一篇此文来自http://www.iteye.com/topic/829843作者:niumd blog:http://ari.iteye.com一、概述 Struts2的核心是一个Filter,Action可以脱离web容器,
2013-06-21 17:51:25 888
原创 struts2源码阅读第一天
从今天开始进行struts2的源码阅读计划,希望一周内能搞定它!首先从网络上下载struts2和xwork的源代码(如果不知道怎么下载....百度一下你就知道了),然后在MyEclipse中建立一个简单的javaweb项目,引入struts2-core-xxx.jar和xwork-core-xxx.jar。然后右键点击这两个jar文件,选择Properties->Java Source Att
2013-06-18 17:47:58 1922
转载 java poi操作EXCEL
本文转载至http://blog.csdn.net/zhangao0086/article/details/6382063 使用这套API操作Excel时,将对Excel进行全程锁定,所以不能有其他程序访问同一文件.package poi; import java.io.FileOutputStream;import java.util.Calendar;
2013-06-09 10:11:44 523
转载 java文件读写操作大全
java文件读写操作大全转自http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html一.获得控制台用户输入的信息 public String getInputMessage() throws IOException...{ System.out.println("请输入您的命令∶");
2013-06-08 11:29:34 418
ibatis开发用的3个jar包
2011-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人