Java

关于Java中的四种引用

Java中的四种引用强、软、弱和虚引用,对应的生命周期:强>软>弱>虚引用.除强引用外,其他3种引用都需要与ReferenceQueue联合使用,当引用被垃圾回收机制回收的时候,引用会自动放入ReferenceQueue中.WeakReference和SoftReference可以用来做Cashe,文章第二段引用了JavaEye文章,介绍Googlecollection的MapMaker方便生成ConcurrentMap,可以方便的设置map中expire

系统 2019-08-29 23:49:34 2243

Java

Java多线程编程总结--线程栈模型与线程的变量

原文:http://lavasoft.blog.51cto.com/62575/27069/作者:熔岩原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://lavasoft.blog.51cto.com/62575/27069要理解线程调度的原理,以及线程执行过程,必须理解线程栈模型。线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶。线程栈的内容是随着程序的运行动态变化的,因此

系统 2019-08-29 23:48:30 2243

Java

JAVA设计模式:适配器模式

c.适配器模式我的笔记本是港货,它的插头与我们常用的插座不一样,所有我出差的时候我必须带一个适配器,才能使用不同地方的插座。这是一个对适配器模式最经典的描述。当我们设计的系统要与其它系统交互,或者我们设计的模块要与其它模块交互时,这种交互可能是调用一个接口,或者交换一段数据,接受方常常因发送方对协议的变更而频繁变更。这种变更,可能是接受方来源的变更,比如原来是A系统,现在变成B系统了;也可能是接受方自身的代码变更,如原来的接口现在增加了一个参数。由于发送方

系统 2019-08-29 22:50:56 2243

Java

java 变量作用范围(竟然理解错了)丢人 ——JA

publicclassTest{/***@paramargs*/publicstaticvoidmain(String[]args){Stringstr="A";doit(str);System.out.println(str);}publicstaticvoiddoit(Stringstr){str="B";}}这里结果输出A啊,唉,这都错,半路出家和尚啊……doit传进去的参数作用范围只是函数内部,Java是值调用。突然想到,这里的String类型的之

系统 2019-08-29 22:34:41 2243

Java

jetty6 嵌入到 javaproject中

Jetty是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty以其高效、小巧、可嵌入式等优点深得人心,尤其是启动速度Tomcat6简直望尘莫及。Jetty作为可选的servlet容器只是一个额外的功能,而它真正出名是因为它是作为一个可以嵌入到其他的Java代码中的servlet容器而设计的。这就是说,开发小组将Jetty作为一组Jar文件提供出来,因此你可以在你自己的代码中将servlet容器实例

系统 2019-08-29 22:10:54 2243

Java

java解惑你知多少(七)

应用47.不可变的引用类型Java代码BigIntegertotal=BigInteger.ZERO;total.add(newBigInteger("1"));total.add(newBigInteger("10"));System.out.println(total);//0上面程序的结果为11吗?答案是0。BigInteger实例是不可变的。String、BigDecimal以及包装类型:Integer、Long、Short、Byte、Charac

系统 2019-08-29 22:02:46 2243

Java

java字符串应用之表达式解析器

一、表达式的组成1、数字2、运算符:+-/*^%=3、圆括号4、变量二、运算符优先级由高到低分别为:+-(正负号)、^、*/%、+-、=优先级相等的运算符按照从左到右的顺序计算三、关键技术点1、确定运算的优先级,从高到低分别为:原子元素表达式,包括数字和变量;括号表达式;一元表达式,取数的负数;指数表达式;乘、除、取模表达式;加、减表达式;赋值表达式。2、对于每一级别的运算,都由一个方法实现,在方法中先完成比自己高一级别的运算,再处理本级别的运算。因此,在

系统 2019-08-12 09:29:44 2243

Java

关于Flex+json+Java的整合开发【连载二】- Java

由于系统中是用Json传输数据的,我觉得在这里有必要把Java和Flex处理Json数据分别介绍一下,今天我们先介绍Java处理Json数据。java里面已经有开源包实现了把一个Java对象转换为JSon对象,它就是http://www.json.org/java/,各位读者可以在这个网站上面去下载jar包。首先创建一个自己的public的class,需要转换的类必须是public的,如果不是public的,这里转换不成功,我在写这篇文章的时候就遇到了这样

系统 2019-08-12 09:29:38 2243

Java

开源 免费 java CMS - FreeCMS1.3-系统配置

下载地址:http://code.google.com/p/freecms/系统配置从FreeCMS1.2开始支持管理系统使用的配置项。从左侧管理菜单点击系统配置进入。从FreeCMS1.3开始支持会员禁用登录名邮件相关配置开源免费javaCMS-FreeCMS1.3-系统配置

系统 2019-08-12 01:32:52 2243

Java

快报:Java跌惨!Python背后或有推手?网友:心态已崩!

原文链接:https://edu.csdn.net/topic/python115?utm_source=yjs“愿你出走半生,归来仍学Python!”最近Python的slogan正在“变化”。原因是来自于PYPL官方发布2019年7月编程语言指数榜,Python连续半年夺冠,并且本月市场份额超高的28.08%。这简直是遇神杀神,遇佛杀佛的灭霸节奏!不过,Python虽然在编程排行上力压曾经的大佬Java,但其他方面可以吗?能给程序员想要的吗?So,Py

系统 2019-09-27 17:53:49 2242

Java

java 克隆clone学习

文章参考:http://www.java3z.com/cwbwebhome/article/article8/81145.html?id=2600JavaObject类提供了一个protected修饰的clone()方法,该方法用于帮助其他对象来实现“自我克隆”,所谓“自我克隆”就是得到一个当前对象的副本,而且两者之间完全隔离,该方法只能被子类重写或调用。自定义类实现“克隆”的步骤:1、自定义类实现Cloneable接口;(这是个标记性接口,实现该接口对象

系统 2019-08-29 22:10:22 2242

Java

Effective Java (类和接口)

十三、使类和成员的可访问性最小化:信息隐藏是软件程序设计的基本原则之一,面向对象又为这一设计原则提供了有力的支持和保障。这里我们简要列出几项受益于该原则的优势:1.更好的解除各个模块之间的耦合关系:由于模块间的相互调用是基于接口契约的,每个模块只是负责完成自己内部既定的功能目标和单元测试,一旦今后出现性能优化或需求变更时,我们首先需要做的便是定位需要变动的单个模块或一组模块,然后再针对各个模块提出各自的解决方案,分别予以改动和内部测试。这样便大大降低了因代

系统 2019-08-29 22:02:34 2242

Java

将BIRT整合到自己的Java项目中(二)

关于编写viewer,关键在于使用ReportEngineAPI,这个在birt官方文档上有很详细的描述。这里将几个主要环节总结一下:启动ReportEngine这里需要注意启动ReportEngine的开销问题和图片链的协议的问题。使用IReportEngineFactory比每次new一个出来性能方面要好很多。使用HTMLEmitterConfig可以使得生成的HTML报表中的图片的src指向一个web资源而非file资源。publicIReportE

系统 2019-08-12 09:30:39 2242

Java

将BIRT整合到自己的Java项目中(三)

渲染报表BIRT支持HTML格式和PDF格式,这两种报表生成的过程相同,只是设置不同的RenderContext和RenderOptions。我们把相同的部分提取为父类的公共方法,不同的部分留给子类实现:IReportDocumentiReportDocument=engine.openReportDocument(docFilename);//CreateRenderTaskIRenderTasktask=engine.createRenderTask(

系统 2019-08-12 09:30:39 2242

Java

自动执行 Java 性能优化

http://www.oracle.com/technology/global/cn/pub/articles/brahms-tuning.html?_template=/ocom/print作者:CarlBrahms自动执行负载生成和性能优化过程为什么可以节省大量的时间和精力。2008年9月发布优化可能是一项非常艰巨而费时的工作,尤其对于需要最佳性能的环境来说更是如此。优化所带来的好处是使环境更稳定、故障更少、总体性能更佳。也许您幸运地拥有内部性能优化人

系统 2019-08-12 09:29:31 2242