- 浏览: 144436 次
- 性别:
- 来自: 北京
最新评论
-
greatwqs:
这样的帖子必须手动来赞一个!
String那点事儿2--占了多少空间 -
mthhk:
顶一发,字数补丁。字数补丁。字数补丁。字数补丁。字数补丁。字数 ...
父类中获取子类范型类型 -
azvf:
北斗文昌 写道引用也就是说,String subStr = b ...
String那点事儿3--溢出、陷阱、效率、优化 -
北斗文昌:
引用也就是说,String subStr = bigStrin ...
String那点事儿3--溢出、陷阱、效率、优化 -
aubdiy:
以前还这么看过 substring这块。。。。 刚刚看了一下 ...
String那点事儿3--溢出、陷阱、效率、优化
文章列表
LOG4E PRO注册码
- 博客分类:
- OS/IDE/SOFTWARE
转自http://blog.csdn.net/safecom/article/details/5888058
插件安装地址
http://log4e.jayefem.de/update
LOG4E PRO注册码
2010-09-16 12:28 198人阅读 评论(0)
转自http://blog.csdn.net/robin022/article/details/7332575
今天用Microsoft Visio画用例图时,发现visio UML用例里面找不到include关系,即“箭头”+“<<include>>” 这个组件,后来终于发现一个可行的解决办法:
首先:打开Microsoft Visio -> 选择模板类别“软件和数据库” -> UML模型图->点击菜单栏“UML” -> 单击选项“构造型”-> 新建 > 构造型那里输入include -> 基类那里选“归纳” ...
父类中获取子类范型类型
- 博客分类:
- JAVASE
import java.lang.reflect.ParameterizedType;
public abstract class Base<T> {
private Class<T> persistentClass;
@SuppressWarnings("unchecked")
public Base() {
// 获取持久化对象的类型
this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSupercla ...
本文转自http://www.admin10000.com/document/3828.html
深入理解Java HelloWorld
HelloWorld是每个Java程序员都知道的程序。它很简单,但是简单的开始可以引导你去深入了解更复杂的东西。这篇文章将探究从这个HelloWorld这个简单程序中可以学到的东西。如果你对HelloWorld有独到的理解,欢迎留下你的评论。
HelloWorld.java
环境:SPRING-TEST ,JUNIT,Log4j
运行 junit时,报错
log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info ...
JAVA容器效率深度分析List
- 博客分类:
- JAVASE
本文中的测试代码来源于《think in java》第四版
附件中有测试代码
1、各种List的各种操作的耗时
size:每一个list的元素数量,从10到10W
操作:add增加到list末端,get随机访问,set修改某个元素值,insert在list中间插入(代码中只是插入到了第五个元素,放大了随机插入的操作时间),rmMiddle从list中间删除元素(代码中是删除了第五个元素,放大了从list.size()/2的操作时间,rmLast从list末端删除,rmFirst从list首部删除
操作时间:是指每一次操作所用的时间,单位纳秒
环境:64bit ...
本文内容摘抄自
http://developer.51cto.com/art/201309/410792.htm
http://blog.csdn.net/wong_judy/article/details/5262104
1、io简介
io中的输入、输出,是相对于内存来说,比如:写文件是将内存作为源端、磁盘作为接收端,从内存中输出到磁盘
2、io包中主要的类和接口
InputStream(字节流):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。
OutputStream(字节流):抽象类。基于字节的输出操作。是所有输出流的父类。 ...
本文部分内容来自于《突破程序员基本功的16课》,《Java程序性能优化》
1、拼接
1.1直接量拼接、变量拼接、fianl变量拼接
上干货,fuck goods
public class StringTest {
public static void main(String[] args) {
test();
test2();
test3();
}
/**
* 直接量拼接,对于编译期就能确定的值,编译器会将值合并
* String hw = "hello" + "world";反编译cla ...
本文部分内容摘抄自:《算法》第四版,图灵丛书,人邮出版社
序
孔老师:茴香豆的茴字有四种写法,来,我告诉你。
1、一道面试题
String str = "搞java";占用多少内存空间?一般给的答案是“6字节”。然而凭着男人的直觉,这个答案貌似不完全正确。
如下图示:
这6个字节是如何来的?看这里,上干货fuck goods
import java.io.UnsupportedEncodingException;
public class StringTest {
public static void main(String[] args) ...
本文大部分内容来源于《深入JAVA虚拟机》
java笔试题中,出现频率较高的一道题:String str = new String("str");String str2 = "str";产生了几个对象?我告诉你有0个,你信么?这道题解释起来比较费劲,咱们从根源说起先。
1、虚拟机内存模型
人们常说jvm分为堆区和栈区,这是比较粗的分发,实际的情况参照上图。和本道面试题有关的区域有:虚机栈、堆区、方法区、运行时常量池。
虚拟机栈:
这就是大家常说的栈区,是线程私有的,生命周期和线程相同。虚拟机栈描述的是java方法执行的内存模型:方法执行时 ...
System.out输出的信息,难于控制,让log4j接管System.out。
第一步,自定义输出流,翻译成java语言就是Log4jPrintStream extends PrintStream,在该流中重写print方法,println方法,用log.debug输出
第二部,给jvm分配新的standard输出流,翻译成java语言就是 System.setOut(new Log4jPrintStream())
上干货,fuck goods
测试主类,SystemOut2Log.java
package redirect;
public class System ...
使用配置文件
log4j.rootCategory=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#输出格式
log4j.appender.stdout.layout.ConversionPattern=%p [%t] %C.%M(%L) | %m%n
log4j的输出如下
DEBUG [main] LogTest.main(9) | I'm DEBUG
IN ...
好多刷票的,服务器宕机好几次,后来投票程序升级了,增加了图片验证码功能,验证码中有4个英文数字组合,再后来升级为中文验证码。上次的js投票器,写的有点随意了,这次改java版的。
先来分析下验证码是如何工作的
第一步,request到服务器端,server生成验证码,置入session
第二部,跳转到客户端(一般是浏览器),此时生成图片,图片中的内容就是session 中的验证码
第三步,用户将 数据 + 肉眼看到的图片上的验证码 post/get到服务器
第四步,服务器端,验证post/get来的验证码,和session 中的验证码是否相同,相同则继续执行业务然后跳转到投票页即第 ...
帮忙网络投票,粗看下,仅有一个ip校验:每天每个ip仅能投票一次。
解决办法1、伪造ip,http协议中,request有个属性:"X-Forwarded-For",这个属性值就是服务器端的程序所能获取的ip。通过request.setRequestHeader("X-Forwarded-For","10.12.10.1");
从网上随便搜了段代码,是网络投票的,稍加改了改,增加伪造ip方法
function r(min,max){
return Math.floor(min+Math.random()*(max-m ...
1、效率
log4j关闭debug级别输出,但是在代码中log.debug(Object msg)的写法不同,将会多耗费3-5倍的时间。因此,要优化log.debug()这个方法的调用的,log.info()也是同理。
2、log4j的优化简介
log4j做了大量的优化,比如:Log4j初始化时打开文件并保持对文件的写控制,直到进程结束时才关闭流。这样控制打开I/O次数。
还有其他方面的优化,使用了大量缓存,参看debug方法源码
public void debug(Object message) {
if(repository.isDisabled(Level.DE ...