转载自----http://lrysir.iteye.com/blog/1153226这不是一篇描述jvm是什么的文章,也不介绍jvm跨平台的特性,也不是讲述jvm安全特性的文章,更不是讲解jvm指令操作,数据运算的文章,本文重点讲述类型的生命周期。类型的生命周期涉及到:类的装载、jvm体系结构、垃圾回收机制。为什么要讲jvm体系结构?因为类的装载和垃圾回收机制都和jvm体系结构息息相关。那么什么是jvm体系结构呢?当jvm运行起来的时候,它会向系统申请一
系统 2019-08-12 09:30:27 2413
JavaIO编程1、基本概念Java中对文件的操作是以流的方式进行的,流是Java内存中一组有序数据序列。Java将数据从源(文件、内存、键盘、网络)读入到内存中,形成了流,然后还可以将这些流写到另外的目的地(文件、内存、控制台、网络)之所以叫做流,是因为这个数据序列在不同时刻所操作的是源的不同部分。2、流的分类流的分类方式一般有以下三种:(1)输入的方向分:输入流和输出流,输入和输出的参照对象是Java程序。(2)处理数据的单位分:字节流和字符流,字节流
系统 2019-08-12 09:29:44 2411
在有些情况下死锁是可以避免的。本文将展示三种用于避免死锁的技术:加锁顺序加锁时限死锁检测加锁顺序当多个线程需要相同的一些锁,但是按照不同的顺序加锁,死锁就很容易发生。如果能确保所有的线程都是按照相同的顺序获得锁,那么死锁就不会发生。看下面这个例子:Thread1:lockAlockBThread2:waitforAlockC(whenAlocked)Thread3:waitforAwaitforBwaitforC如果一个线程(比如线程3)需要一些锁,那么它
系统 2019-08-29 23:41:05 2410
策略模式如果一个员工系统中,员工被分为临时工和正式工并且在不同的地方相应的行为不一样。在设计它们的时候,你肯定设计一个抽象的员工类,并且设计两个继承类:临时工和正式工。这样,通过下塑类型,可以在不同的地方表现出临时工和正式工的各自行为。在另一个系统中,员工被分为了销售人员、技术人员、管理人员并且也在不同的地方相应的行为不一样。同样,我们在设计时也是设计一个抽象的员工类,并且设计数个继承类:销售人员、技术人员、管理人员。现在,我们要把这两个系统合并起来,也就
系统 2019-08-29 22:44:20 2409
由于在语言级提供了线程支持,在Java语言中使用多线程要远比在C或C++中来得简单。本文通过简单的程序示例展现了在Java程序中线程编程的简单性。在学习完本文后,用户应该能够编写简单、多线程的程序。
Java线程死锁如何避免这一悲剧Java线程死锁需要如何解决,这个问题一直在我们不断的使用中需要只有不断的关键。不幸的是,使用上锁会带来其他问题。让我们来看一些常见问题以及相应的解决方法:Java线程死锁Java线程死锁是一个经典的多线程问题,因为不同的线程都在等待那些根本不可能被释放的锁,从而导致所有的工作都无法完成。假设有两个线程,分别代表两个饥饿的人,他们必须共享刀叉并轮流吃饭。他们都需要获得两个锁:共享刀和共享叉的锁。假如线程“A”获得了刀,而线程
系统 2019-08-29 22:51:27 2408
§1黑暗岁月有一个String,如何查询其中是否有y和f字符?最黑暗的办法就是:程序1:我知道if、for语句和charAt()啊。classTest{publicstaticvoidmain(Stringargs[]){Stringstr="Formymoney,theimportantthing"+"aboutthemeetingwasbridge-building";charx='y';chary='f';booleanresult=false;fo
系统 2019-08-29 23:51:38 2407
最近需要进行一个简单的抓包功能的实现,由于是在原有程序中添加的该功能,原有程序是采用java实现的,所以就开始考虑java实现抓包实现。起初的想法是查找java类库中是否实现了相关内容,不过根据我的了解应该不会有,经过一番查找也证实了我的想法。那么接下来的思路是通过java的native,然后自己在用c编写抓包,java用native进行调用,不过后来想了想我其实只要的是很简单的抓包分析,没必要自己这么麻烦的从头写;我觉得应该是有开源的包来做这个事情了接下
系统 2019-08-29 22:55:40 2407
我们知道bit-map在大数据处理方面有着很大的用途,比如排序,去重等。JDK从1.0开始就提供了java.util.BitSet来对bit-map的支持。BitSet的set,get操作主要是通过“位运算”进行的。BitSet的核心是一个long的数组:[java]viewplaincopy/**BitSetsarepackedintoarraysof"words."Currentlyawordis*along,whichconsistsof64bits
系统 2019-08-29 22:26:31 2407
Thriftjava服务器与客户端示例-johnc-博客园Thriftjava服务器与客户端示例Postedon2011-06-1903:04johnc阅读(3540)评论(0)编辑收藏简单的实现一个PING的功能1.安装thrifthttp://thrift.apache.org/download/人人网镜像下载:http://labs.renren.com/apache-mirror/thrift/0.6.1/thrift-0.6.1.exe2.编写T
系统 2019-08-12 01:33:22 2407
编程语言流行指数(PYPL)排行榜近日公布了2019年6月份榜单。相比5月编程语言榜单,Python不仅超过了C++,成功占据第三名位置,还以2.77%的涨幅成为增速最快的编程语言,与此同时,拥有8.53%份额的Python达到了TIOBE指数的历史新高。对此,TIOBE官方做了一个大胆的预测,即如果Python可以依旧保持着这样的增长速度,那么可在未来3到4年内成功取代C、Java,从而成为世界上最流行的编程语言。为Java哭了!而Python之所以能有
系统 2019-09-27 17:55:05 2406
http://java-mzd.iteye.com/blog/848635P.S.想写这篇总结酝酿了有个来月了,却始终感觉还差点什么东西,一直未敢动笔。最近两天连夜奋战,重新整理下前面查阅的资料、笔记,还是决定将它写出来。现在提出几个问题,如果都能熟练回答的大虾,请您飘过.如以往一样,我是小菜,本文自然也是针对小菜阶层的总结。首先是概念层面的几个问题:Java中运行时内存结构有哪几种?Java中为什么要设计堆栈分离?Java多线程中是如何实现数据共享的?J
系统 2019-08-29 23:37:25 2405
GridBagModel:抽象模型接口。该接口用于描述表格中单元格的合并状态。DefaultGridBagTableModel:GridBagModel的默认实现。GridBagTable:继承自JTable的控制器。通过该类中的方法控制表格单元的合并和拆分。GridBagTableUI:GridBagTable对应的UI。JavaSwing实现支持合并拆分的JTable
系统 2019-08-29 22:32:02 2405
蔡学镛力荐作品《Java虚拟机精讲》上市先做个自我介绍吧,高翔龙,7年左右的工龄,做过码农、技术经理、高级架构师,呆过大公司、混过创业公司,目前任职一家创业的互联网企业担任系统架构师,负责平台架构搭建、优化、hadoop的推广和实施,以及企业新员工的培训工作。平时喜欢倒腾中间件、喜欢重复造轮子、更喜欢买本书不看,回家摆着吃灰(或许感觉心里踏实些)。对于我来说,写一本书,真的是如履薄冰。习惯了写博客,对于写书来说,真的是一次不小的挑战。最关键的是写的是跟JV
系统 2019-08-12 09:29:33 2403
SeleniumWebDriver没有实现SeleniumRC的isElementPresent()方法来检查页面上的元素是否存在。在WebDriver中封装一个类似的方法,如下:1publicbooleanisElementPresent(WebDriverdriver,Byby){2try{3driver.findElement(by);4returnture;5}catch(Exceptione){6returnfalse;7}8}[selenium
系统 2019-08-12 09:27:14 2403