- 浏览: 330031 次
- 性别:
- 来自: 南京
最新评论
文章列表
目前较为流行的用于对象拷贝的工具类:
Apache的两个版本:(反射机制)
org.apache.commons.beanutils.PropertyUtils.copyProperties(Object dest, Object orig)
org.apache.commons.beanutils.BeanUtils.copyProperties(Object dest, Object orig)
spring版本:(反射机制)
org.springframework.beans.BeanUtils.copyProperties(Object source, Object targ ...
使用JsonObject转换Bean为json对象时如果json是多层包裹的话,我们经常会建多个相应的类,而为了省事有时会把多个类建在一个类文件中,这时候会报“property xxx has no getter method”错误
原因是什么呢,因为使用JsonObject转换Bean时,Bean必须为public,而一个类文件只能有一个public class
所有就没办法省这个事了
为什么要进行URL编码
- 博客分类:
- 编码
文章转载自http://www.cnblogs.com/jerrysion/p/5522673.html
为什么要进行URL编码
http协议中编码问题
- 博客分类:
- 编码
http协议报文有两种:请求报文和响应报文,这两种报文结构是差不多的,都由三个部分组成,依次是:
1)start line 开始行(在请求报文中叫请求行,响应报文中叫状态行)如:GET /index.jsp HTTP/ (CRLF)
2)header 报头 如:Accept:xxx Host:xxx User-Agent等
3)body 消息正文
其中1)和2)部分必须是ASCII码字符
3)中可以是任何编码,可以是字符编码,也可以是图像编码等等,到底是什么,通过2)中的Content-Type来说明
而在ASCII码字符中有部分保留字符不能出现在直接出现在1)和2)的 ...
class.getResource()方法
- 博客分类:
- java基础
getResource返回一个URL,还有一个getResourceAsStream()方法,参数与getResource()一样,相当于用getResource获得File文件后,再new InputStream(file)一样
我们有一下目录
|--project |--src |--javaapplication |--Test.java |--file1.txt |--file2.txt |--build |--javaapplication ...
查找方法在什么地方被调用
- 博客分类:
- eclipse和tomcat
选中方法名 右键-->references-->project 就能查找到了
也需用其他element name
eclipse上checkout java文件后,有时会发现修改文件会弹框,还有就是ctrl+鼠标左键的方式定位类,仔细看的话会发现文件上图标J是空心的
这是因为eclipse以资源文件方式检出该java文件,而不是以项目方式检出,因此不会对它进行编译,大部分原因是项目的.project文件有问题
群里面看到的一个奇葩题目与三个所谓答案如下:
其中针对第二种解决方案写个测试代码
Class cache = Integer.class.getDeclaredClasses()[0];
Field myChache = cache.getDeclaredField("cache");
myChache.setAccessible(true);
Integer[] newCache = (Integer[]) myChache.get(cache);
newCache[128] = 100;
...
Integer对象的值比较
- 博客分类:
- java基础
1.Integer a = n ;Integer b = new Integer(n),a一定不等于b
2.两个都是new出来的,肯定不等
3.int与以上两种Integer对象比,只要值一样就相等(自动拆装箱)
有意思的来了,如果两个都是非new方法新建的对象,那么值在-128至127之间,则是相等,否则不等
什么意思呢
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1==i2); //true
Integer i3 = 128;
Integer i4 = 128;
System.out.print ...
检出和导出的区别
检出得到的文件夹包含.svn隐藏文件夹,.svn文件夹中含有svn控制端的控制信息,保证检出的文件夹受SVN客户端控制
导出得到的文件夹不包含.svn文件夹,因此不受SVN客户端控制,不能继续进行update、commit操作
eclipse中svn检出方式有两种:
1.作为新项目检出:选择后使用新建项目向导进行配置,这种方式仅当资源库中不存在.project工程文件时才可用。意思是如果代码库中有了这个工程文件,那么就认为它是一个信息完整的工程,在导入过程中就不需要再创建工程再进行配置了,因为.project工程文件已经包含这些信息
2.作为工作空间中的项目 ...
字符集:符号与控制符的集合以及与二进制的对应关系
编码方式:计算机读取与存储字符集中字符的规则
比如ASCii字符集有128个字符,其中‘A’对应的是十进制65,ASCii编码方式则是用首位为0的一个字节表示每个字符,计算机只要依次读取单字节并将后七位与字符集比较,就能读懂该字节含义
ASCii:包含128个字符
iso-8859-1:包含256个字符,向下兼容ASCii即它的1~128与ASCii一样
ANSI: 一种扩展的ASCII码,每个国家不一样,中文简体就是ASCII+GBK,繁体字的是Big5,日语的是Shift_JIS
Unicode
现在最重要的当属 ...
try-catch中的同步代码块
- 博客分类:
- java基础
在try-catch包裹的synchronized代码块如果抛出异常,则释放锁
解释是只要跳出synchronized代码块就会释放锁。。
代码如下
public synchronized void put(Object o) {
while (buf.size()==MAX_SIZE) {
wait(); // 如果buffer为full,就会执行wait方法等待(为了简单,我们省略try/catch语句块)
}
buf.add(o);
notify(); // 通知所有正在等待对象锁的Producer和Consumer(译者注:包括被阻挡在方法外的Producer和Consumer)
...
所有对象都自动含有单一的锁
不管是同步代码块还是同步方法,只要用的同一个锁,他们就是互斥的
如:当使用同步块时,如果多个方法的同步快都同步到一个对象的锁上,则所有线程只能互斥进入这几个不同的方法
同步方法的锁对象是调用这个方法的对象
首先内部类是一个编译时概念,跟虚拟机无关,编译成功后就会形成两个class对象。如:外部类outer中的内部类inner,编译完成后出现outer.class和outer$inner.class
成员内部类写在外部类的方法之间,有两个主要特点:
1.外部类作用范围内可以任意创建内部类对象,即使是私有的
2.内部类可以范文外部类的所有域,即使是私有域
需要注意的是,成员内部类不能含有static的变量和方法。因为需要先创建了外部类,才能创建成员内部类
Outer outer = new Outer();
Outer.Inner inner = outer.new Inne ...