Java线程:线程状态的转换SCJP5学习笔记一、线程状态线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。用一个图来描述如下:1、新状态:线程对象已经创建,还没有在其上调用start()方法。2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。3、运行状
系统 2019-08-12 09:30:26 1681
java中函数使用变长参数2010-01-0121:09当参数个数不确定时,开发者很想使用变长参数,让调用者以更灵活的方式调用。此种方法和方法重载有同样的效果,但是个人感觉比方法重载用着简洁。一直知道Java支持变长参数函数,然而项目中一直没有用到,前几天在项目中看到前辈大量使用变长参数,感觉有很好的效果。特别是API设计中能够解决很多不确定因素。下面是一个简单的变长参数示例变长参数使用的形式是Type...argsName,即类型+省略号+参数名Java
系统 2019-08-12 09:29:32 1681
转载自----http://henryyang.iteye.com/blog/1188328Java内存管理机制在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GC(ga
系统 2019-08-12 09:29:32 1681
本人联系方式:msn:snowfox_1028@hotmail.comemail:snowfox_1028@163.com学习和使用这么久java,但是还是觉得很茫然,什么都知道一点,但是什么都不精通,如struts,hibernate,ejb,ibatis,spring,现在想想,应该选择一个目标,进行深入的学习和应用,这样才能有所成,做了这么长的java开发,最后得到的结论和经验就是这些。也好,有了一个明确的方向,一个目标,呵呵,可以走我自己的路了,日
系统 2019-08-12 09:29:27 1681
1.配置Tomcat虚拟目录在D盘创建文件夹“javaweb”,然后添加WEB-INF文件夹及其内容。创建index.html页面,随便写些什么。在tomcat安装路径下满的webapps/conf/server.xml中Host节点下面添加:之后在浏览器中敲入http://localhost:8080/javaweb/搞定。哦也。2.安装Tomcat之配置现实情况是
系统 2019-08-12 01:33:51 1681
编程语言流行指数(PYPL)排行榜近日公布了2019年7月份榜单。在最新一期榜单上,Python的份额高达28.08%,再次蝉联第一,并且增长4.7%,同时成为增长势头较好的语言。而被挤到第二蝉联Java,同比下跌1.8个百分点,C/C++已经被挤出前三甲。圈内知名网站StackOverflow的数据显示,其实早在去年6月份,Python的月活用户就已超越了Java、JavaScript,成为第一。IEEESpectrum也在2018年度顶级编程语言排行榜
系统 2019-09-27 17:56:52 1680
版权声明:转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/90200689python代码如下。classSon():def__init__(self):print("sonsayhi")print("haha")if__name__=='__main__':son=Son()运行结果如下:再试用下面代码,只有几个类的定义,没有实例化。cl
系统 2019-09-27 17:56:21 1680
由于java程序需要调用C或C++的代码,不得不使用JNI。C的代码在Win32和Linux下都有相同功能的不同实现,就像JDK分几种平台版本(win32,linux,solaris等)。首先,看一看首先,看一看win32下调用dll文件。1,新建HelloWorld.java1publicclassHelloWorld2{3static4{5try6{7//此处即为本地方法所在链接库名8System.loadLibrary("HelloWorld");9
系统 2019-08-29 23:39:19 1680
1.目录结构2.java测试码packagecom.test.main;importjava.net.URL;importorg.slf4j.ILoggerFactory;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.context.ApplicationContext;importorg.springframework.context.supp
系统 2019-08-29 23:22:39 1680
用java.util.Timer定时执行任务如果要在程序中定时执行任务,可以使用java.util.Timer这个类实现。使用Timer类需要一个继承了java.util.TimerTask的类。TimerTask是一个虚类,需要实现它的run方法,实际上是他implements了Runnable接口,而把run方法留给子类实现。下面是我的一个例子:classWorkerextendsTimerTask{publicvoidrun(){System.out
系统 2019-08-29 23:22:38 1680
程序设计模式的有趣解释-追MM创建型模式1、FACTORY一追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。2、BUILDER
系统 2019-08-29 22:48:37 1680
这就一个简单的jdom怎么解释xmlTest.javaimportorg.jdom.Document;importorg.jdom.Element;importorg.jdom.input.SAXBuilder;importjava.io.*;importjava.util.*;publicclassTest...{publicTest()...{}publicstaticvoidmain(String[]args)...{Documentdom=null
系统 2019-08-29 22:39:30 1680
java程序性能优化Postedon2010-07-2816:04chinaifne阅读(2246)评论(0)编辑收藏一、避免在循环条件中使用复杂表达式在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。例子:importjava.util.vector;classcel{voidmethod(vectorvector){for(inti=0;i
系统 2019-08-29 22:21:32 1680
第三章主要讲的共享对象,这章有些内容比较抽象,我理解其中的一些东西费了一些周折。所以把这些理解记录下来,以免以后遗忘,有些内容是个人的理解,如果您对我的理解有异议,请提出来共同讨论。3.1可见性这里提到了“重排序”,指的是操作系统对线程分片后,针对不同线程的调度是没有特定顺序的。3.1.1过期数据貌似没有什么可说的...3.1.2非原子的64位操作这里指的是对double和long类型64位的变量。对于这种数据编写多线程程序的时候最好要加volatile标
系统 2019-08-29 22:18:41 1680
1.数组的定义格式1.元素类型[]数组名=new元素类型[元素个数或者数组长度];int[]arr=newint[5];//推荐intarrs[]=newint[5];2.静态初始化方式不能写长度int[]arrs=newint[]{3,1,4,5,6,2};int[]arrs={3,1,4,5,6,2};//好像是在jdk5.0后才能使用3.boolean类型的数组默认值为false数组的操作publicstaticvoidmain(String[]ar
系统 2019-08-29 22:00:03 1680