如果您喜欢这些文章,欢迎点击此处订阅本Blog
系统 2019-08-29 22:29:04 2278
8.+=复合赋值问题x+=i与x=x+i等效吗,许多程序员都会认为第一个表达式x+=i只是第二个表达式x=x+i的简写方式,但这并不准确。Java语言规范中提到:复合赋值E1op=E2等价于简单赋值E1=(T)((E1)op(E2)),其中T是E1的类型。复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型。如果结果的类型与该变量的类型相同,那么这个转型不会造成任何影响,然而,如果结果的类型比该变量的类型要宽,那么复合赋值操作符将悄悄地执行一个窄化
系统 2019-08-29 22:02:50 2278
volatile,用更低的代价替代同步为什么使用volatile比同步代价更低?同步的代价,主要由其覆盖范围决定,如果可以降低同步的覆盖范围,则可以大幅提升程序性能.而volatile的覆盖范围仅仅变量级别的.因此它的同步代价很低.volatile原理是什么?volatile的语义,其实是告诉处理器,不要将我放入工作内存,请直接在主存操作我.(工作内存详见java内存模型)因此,当多核或多线程在访问该变量时,都将直接操作主存,这从本质上,做到了变量共享.v
系统 2019-08-29 22:02:41 2278
e.printStackTrace();本文从Java异常最基本的概念、语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对比Spring的异常处理框架,阐述了异常处理的基本原则。并且作者提出了自己处理一个大型应用系统异常的思想,并通过设计一个异常处理的框架来论述此思想。一、异常的概念和Java异常体系结构异常是程序运行过程中出现的错误。本文主要讲授的是Java语言的异常处理。Java语言的异常处理框架,是Java语言健壮性的一个重要体
系统 2019-08-12 09:29:41 2278
之前遇到一个老师,他从事Java行业20年了,在Python兴起的时候,他周围的其他同行们都在纷纷学习Python方面的知识,连他的学生也问他“老师,你为什么不学Python呢?”。当这位听到学生这个问题的时候,他心里一怔一下,自己从事了Java这么多年,编写了这么多年的Java代码,Java的好他最清楚不过了,觉得Python再怎么盛行他也不会改行学别的,因为在他的眼里Java是不可取代的语言!可当Python逆袭各大编程排行版后,新媒体、身边朋友也都在
系统 2019-09-27 17:56:26 2277
java读取配置文件的几种方法在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据笔者工作中用到的读取配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。一.读取xml配置文件(一)新建一个javabeanpackagechb.demo.vo;publicclassHelloBean...{privateStringhelloWorld;publicStringgetHelloWorld()...{r
系统 2019-08-29 23:46:34 2277
StringbirthdayString="2006-04-05";java.util.Datebirthday=newjava.util.Date();try...{java.text.SimpleDateFormatsdf=newjava.text.SimpleDateFormat("yyyy-MM-dd");birthday=sdf.parse(birthdayString);System.out.println(birthday);System.o
系统 2019-08-29 22:56:37 2277
之前坊间有传闻JavaEye已被CSDN收购,无法确定是否属实。不过,目前通过Whois查询JavaEye的域名,结果如下:DomainName.....................javaeye.comNameServer.....................ns1.mydnspod.comns2.mydnspod.comRegistrantID...................hc19114540-cnRegistrantName.....
系统 2019-08-29 22:16:53 2277
渲染报表BIRT支持HTML格式和PDF格式,这两种报表生成的过程相同,只是设置不同的RenderContext和RenderOptions。我们把相同的部分提取为父类的公共方法,不同的部分留给子类实现:IReportDocumentiReportDocument=engine.openReportDocument(docFilename);//CreateRenderTaskIRenderTasktask=engine.createRenderTask(
系统 2019-08-12 09:30:39 2277
我的第一次之给《JAVA并发编程实践》写推荐序英文书名:JavaConcurrencyinPractice中文书名:JAVA并发编程实践这是一本入围17届Jolt大奖的书,虽然最终他没有获奖,但是这只是与政治有关的。:)推荐序原文如下:http://book.csdn.net/bookfiles/398/10039814644.shtml在汗牛充栋的Java图书堆中,关于并发性的书籍却相当稀少,然而这本书的出现,将极大地弥补了这一方面的空缺。即使并发性编程
系统 2019-08-29 23:50:06 2276
2.List接口List接口继承了Collection接口以定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作。(1)面向位置的操作包括插入某个元素或Collection的功能,还包括获取、除去或更改元素的功能。在List中搜索元素可以从列表的头部或尾部开始,如果找到元素,还将报告元素所在的位置:voidadd(intindex,Objectelement):在指定位置index上添加元素elementboolean
系统 2019-08-29 22:44:16 2276
代码下载地址:http://download.csdn.net/source/1047937SLG或者说战棋游戏,在大多数英文站点是归类到SimulationGame的(包括模拟城市之类的纯SIM),并没有进行SRPG(StrategiesRolePlayGames)、RTS(Real-TimeStrategyGame)乃至RSLG(RoleplaySimulationGame)种种的细分。归结原因,想必还是因为近似因素太多,在大多数时候已经难以区分其本来
系统 2019-08-29 22:39:52 2276
好东西分享大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台的代码,然后让我们判断输出的结果。这实际上是在考查我们对于继承情况下类的初始化顺序的了解。我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过
系统 2019-08-12 09:29:28 2276
我下载的是mongo-2.8.0.jar—Version2.8.0打开mongoshell--新建数据库test--(usetest)打开eclipse新建工程,把junit,mongo-2.8.0.jar导入。新建测试类如下:packagecom.db;importjava.net.UnknownHostException;importjava.util.ArrayList;importjava.util.List;importorg.bson.type
系统 2019-08-12 01:51:35 2276
在前一章查看tomcat启动文件都干点啥---Bootstrap.java中我们得出结论,在Bootstrap中通过反射调用Catalina类中的getServer,start,stop,stopServer等方法,下面看一下Catalina类中给外部提供的公共方法:Start:其中Catalina类的入口当然是start方法.start方法实现了启动一个新的server事例的功能,看一下start方法的内容:1publicvoidstart(){23if
系统 2019-08-12 01:33:02 2276