java基础复习及源代码研究
Ikeepmoving
毕业于武汉大学,目前就职于阿里巴巴,研发工程师一枚。
展开
-
java加密算法
java加密算法转载 2014-06-12 18:24:55 · 728 阅读 · 0 评论 -
ThreadLocal的使用方法
ThreadLocal的含义是Thread Local Variable,它可以声明一个字段,使得不同的线程访问这个字段时,获取的都是不同的副本,互不影响。ThreadLocal的作用和在每个Thread类声明一个字段相同,那么什么时候使用它呢?还是在编写一些框架时,因为这时你无法预先定义Thread类。其中一个典型的用法是调用一个静态方法,这个静态方法会操作一个ThreadLocal变量转载 2014-07-12 19:58:15 · 659 阅读 · 0 评论 -
HashMap和HashSet原理及底层实现
HashMap底层用哈希算法实现,下面看一下哈希算法的整体概括:当map.put(“key”,”values”);的时候,底层是这样的: static final Entry[] EMPTY_TABLE = {}; transient Entry[] table = (Entry[]) EMPTY_TABLE; /*** The number of key-原创 2014-09-21 14:14:22 · 7268 阅读 · 0 评论 -
servlet必知细节(二)--servlet执行过程
servlet必知细节(二)--servlet执行过程 我们知道,servlet没有main函数,那么,servlet是怎么调用的呢? 实际上,servlet 是由tomcat调用的,tomcat调用servlet程序执行。由调用栈可以看到,当一个请求过来时,Bootstrap类的main方法调用。 当用户在客户端发起url请求 :http://localhost/s原创 2015-04-16 16:39:36 · 840 阅读 · 0 评论 -
jdk7新特性学习笔记
jdk7新特性学习笔记从网络down了视频看,记录下学过的东西。1.二进制字面量JDK7开始,可以用二进制来表示整数(byte,short,int和long),语法:在二进制数值前面加 0b或者0B例如:int x = 0b11112.数字字面量可以出现下划线为了增强对数值的阅读性,如我们经常把数据用逗号分隔一样。JDK7提供了_对数据分隔。举例:int x =原创 2015-05-04 15:12:22 · 522 阅读 · 0 评论 -
Velocity判断空的方法
Velocity中没有null,那么怎么判断null呢1、在velocity中,非null被认为是真的,所以,可以用#if($!变量名) // 变量不为空的代码#else // 变量为空的代码 #end转载 2015-08-04 09:51:51 · 3155 阅读 · 0 评论 -
servlet必知细节(一)
servlet必知细节(一) 今天复习了一下servlet,有过一些编程经验后,与最初学习servlet相比,对servlet理解的角度不同了,最初只是学习了如何写一个servlet,api怎么用,现在从更深处了解了servlet。1.servlet接口实现关系 HttpServlet继承GenericServlet,GenericServlet实现Servlet接口。原创 2015-04-13 20:20:53 · 809 阅读 · 0 评论 -
深入理解Java:SimpleDateFormat安全的时间格式化
想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一转载 2015-09-24 14:30:04 · 550 阅读 · 0 评论 -
javassist 初步学习
javassist简介javassist可以对一个已经编译好了的.class文件的字节码进行改动,比如说我可以为一个类添加一个方法,添加一个属性,也可以修改一个方法等,还可以对一个方法,异常进行拦截等。 我们常用到的动态特性主要是反射,在运行时查找对象属性、方法,修改作用域,通过方法名称调用方法等。但反射的性能开销较大,Javassit是一个东京研究院开发的第三方库,提供了运行时操作Java字节码原创 2015-10-14 21:01:29 · 670 阅读 · 0 评论 -
yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss
做项目,需要24小时制式的时间,误用了yyyy-MM-dd hh:mm:ss,导致出现一个很难发现的bug,现记录下,方便以后查阅。yyyy-MM-dd hh:mm:ss 12小时制yyyy-MM-dd HH:mm:ss 24小时制原创 2016-01-14 16:05:29 · 1233 阅读 · 0 评论 -
Java中的值传递和引用传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用的一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。Java参数,不管是原始类型转载 2014-03-21 15:35:21 · 595 阅读 · 0 评论 -
String复习笔记
我的String学习体系不可变常见操作补充:重载++在变成连接符String s = "abc"+24+"haha";格式化输出thinking in java 的例子StringBuffer简介常见操作原创 2013-12-08 16:26:04 · 558 阅读 · 0 评论 -
正则表达式复习笔记
复习体系简介正则表达式是:符合一定规则的表达式。作用:用于专门操作字符串。特点:用一些特定的符号来表示一些代码操作。这样就简化书写。所以学习正则表达式,就是在学习一些特殊符号的使用。好处:可以简化对字符串的复杂操作。弊端:符号定义越多,正则越长,阅读性越差。基础创建例子:量词注意:有时候原创 2013-12-09 12:39:52 · 740 阅读 · 0 评论 -
java初始化顺序
java初始化顺序原创 2014-02-10 13:41:00 · 645 阅读 · 0 评论 -
从一道面试题分析Thread.interrupt方法
阿里面试题:public class TestThread { public static void main(String[] args) { Thread t1 = new Thread() { @Override public void run() { try { int i = 0; while (i++ < 100000000) {原创 2014-02-09 14:00:54 · 1331 阅读 · 0 评论 -
为什么匿名内部类参数必须为final类型
转自:http://ldzyz007.iteye.com/blog/844380基础语法:如果定义一个匿名内部类,并且希望它使用一个在其外部定的对象,那么编译器会要求其参数引用是final的。 1.匿名内部类肯定是局部内部类(在一个方法里面定义的内部类),因为在java中,语句必须写在方法里,而匿名内部类其实就是一条特殊的语句; 2.外部给定的对象就是所有外来的对象:外部方法的形参转载 2014-03-04 13:00:52 · 759 阅读 · 0 评论 -
Java异常体系结构
一、 异常的概念和Java异常体系结构 异常是程序运行过程中出现的错误。本文主要讲授的是Java语言的异常处理。Java语言的异常处理框架, 是Java语言健壮性的一个重要体现。 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。 在Java API中已经定义了许多异常类,这些异常类分为两大转载 2014-03-11 09:31:32 · 872 阅读 · 1 评论 -
Java assert关键字
一、概述在C和C++语言中都有assert关键,表示断言。在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。 二、语法 在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略!),如果要开启断言转载 2014-03-10 21:36:00 · 605 阅读 · 0 评论 -
Java序列化的机制和原理
有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列转载 2014-03-11 10:43:38 · 480 阅读 · 0 评论 -
带头结点的线性表的链式实现
复习了顺序实现后,自己模仿着写了链式实现/** * @author lirui 带头结点的线性表的链式实现 */public class MyLinkList { // 内部类LNode,代表链表结点 class LNode { private T data; private LNode next; public LNode() { } public LNod原创 2014-03-06 16:23:45 · 875 阅读 · 0 评论 -
java实现线性表的顺序存储
package mysequence;import java.util.Arrays;/** * @author lirui * @param */public class SequenceList { private int DEFAULT_SIZE = 16; private int capacity;// 保存数组长度。 private Object[] element转载 2014-03-04 20:44:07 · 585 阅读 · 0 评论 -
用父节点表示法表示一棵树
今天学习,把书上的代码自己边对照,边敲了一下。package mytree;import java.util.ArrayList;import java.util.List;/** * 用父节点表示法表示一棵树。 * * @author lirui * @param */public class TreeParent { public static class No原创 2014-03-09 16:32:49 · 2592 阅读 · 1 评论 -
java重新回顾
很不幸,自己的移动硬盘坏掉了,之前自己所做的学习笔记都没了,大概有300多篇,是大学学习java的时候整理复习的,这样的损失是巨大的,这将花费我更多的时间重新去整理,但是事实已经是这样的了。基于这样的事实,我只能接受,接下来,要做的几件事:1.从现在开始到6月30日,会陆陆续续的重新回顾java的基础知识点。2.这些知识点是有结构的,有一定的知识体系的,如果你刚刚入门java,或者想一原创 2018-01-20 23:02:52 · 420 阅读 · 0 评论