分类‘编程代码’

初识Java多线程设计要点

1.多线程中有主内存和工作内存之分, 在JVM中,有一个主内存,专门负责所有线程共享数据;而每个线程都有他自己私有的工作内存, 主内存和工作内存分贝在JVM的stack区和heap区。

2.线程的状态有'Ready', 'Running', 'Sleeping', 'Blocked', 和 'Waiting'几个状态,
'Ready' 表示线程正在等待CPU分配允许运行的时间。

3.线程运行次序并不是按照我们创建他们时的顺序来运行的,CPU处理线程的顺序是不确定的,如果需要确定,那么必须手工介入,使用setPriority()方法设置优先级。

4.我们无从知道一个线程什么时候运行,两个或多个线程在访问同一个资源时,需要synchronized

5. 每个线程会注册自己,实际某处存在着对它的引用,因此 查看更多...

插件Watermark Reloaded上传非图片文件出错修改

今天在检查博客附件的时候发现有以前上传的一个注册表导入脚本reg文件丢了,重新上传的时候居然报错了。仔细看了才发现是之前安装的Watermark_Reloaded插件导致的错误,没多想,打开插件源代码看看原因,因为小博不是专注PHP的(不过今天发现PHP的语法跟Java很是相似啊),所以没那么快找到原因,后来分析可能是因为上传了非图片文件,而Watermark Reloaded又针对所以上传的附件进行检查并加水印,所以会导致程序出错。

错误提示


查看更多...

Java集合类简要总结

java集合类主要负责保存、盛装其他数据,因此集合类也称容器类。java集合类分为:set、list、map、queue四大体系。其中set代表无序、不可重复的集合;list代表有序、可重复的集合。map代表具有映射关系的集合;queue代表队列集合。

java集合类主要由两个接口派生:Collection和Map,是集合框架的根接口。下面是其接口、子接口和实现类的继承树。

下面就一一介绍四大接口及其实现类。 查看更多...

搭建免费的Java Web开发环境(基于GAE)

最近学习javaEE开发,一直寻找合适的网络开发环境,随着使用Eclipse时间的增多,发现Eclipse搭配一些插件开发App Engine的环境真是不错,随着最近接触App Engine的增多,越来越觉得Google强大了。

注:以下所有操作都在Windows平台进行。所以基本没什么技术门槛。

第一步:搭建App Engine环境,安装 Java SDK

您可以使用 App Engine Java 软件开发工具包 (SDK) 开发和上传 Google App Engine 的 Java 应用程序。

查看更多...

总结Java学习中64例重点、难点等

 1、面向对象的特征有哪些方面
(1)抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
(2)继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
(3)封装: 查看更多...

关于Java方法重载、继承、覆盖总结

1、方法重载:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。
方法名相同
方法的参数类型,个数顺序至少有一项不同
方法的返回类型可以不相同
方法的修饰符可以不相同
main方法也可以被重载

2、方法继承:利用extends关键字一个方法继承另一个方法,而且只能直接继承一个类。
当Sub类和Base类在同一个包时Sub类继承Base类中的public/protected/默认级别的变量个方法
在不同包时继承public/protected级别的变量和方法

3、方法覆盖:如果在子类中定义一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么可以说,子类的方法覆盖了父类的方法。 查看更多...

Java 7 的新特性一览表

官方已经在去年7月28发布了Java7,最近小子开始研究Java了,将其新特性搜集整理出来以供参考。

Java 7 的架构图:

新特性一览表: 查看更多...

简析JAVA中int、String间类型转换

初学Java,对于类型转换以及强制类型转换还是没什么难度的,但是初学者往往在涉及到String类型的转换时,就会抛出问题了。这里收集整理了下,仅供参考。

int 转String

int i=12345;
String s="";
第一种方法:s=i+"";
第二种方法:s=String.valueOf(i);

这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? 查看更多...

冒泡排序算法及各种程序示例

冒泡排序(BubbleSort)的基本概念是:

依次比较相邻的两个数,将小数放在前面,大数放在后面。
即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。

在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。

如此下去,重复以上过程,直至最终完成排序。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。 查看更多...

Java中递归函数的使用及递归程序的缺点

1 、递归函数的定义:

答:递归函数即自调用函数,在函数体内直接或间接的调用自己,即函数的嵌套是函数本身。

2 、递归方式:递归调用有直接递归和间接递归两种方式。

A :直接递归:在函数中出现调用函数本身。

示例 1 :下面代码求斐波那契数列第 n 项,斐波那契数列第一和第二项是 1 ,后面每一项是前两项之和,即 1 、 1 、 2 、 3 、 5 、 8 、 13  ...。

程序代码: 查看更多...