您当前的位置:首页 > 互联网教程

Java经典编程300例的目录

发布时间:2025-05-13 15:35:52    发布人:远客网络

Java经典编程300例的目录

一、Java经典编程300例的目录

1、实例003输出由“*”组成的三角形 3

2、实例005下载并运行Eclipse工具 7

3、实例008使用Eclipse格式化代码 11

4、实例009安装WindowBuilder插件 12

5、实例011输出错误信息与调试信息 16

6、实例012从控制台接收输入字符 16

7、实例013重定向输出流实现程序日志 17

8、实例014自动类型转换与强制类型转换 19

9、实例015加密可以这样简单(位运算) 20

10、实例016用三元运算符判断奇数和偶数 21

11、实例017不用乘法运算符实现2×16 22

12、实例019判断某一年是否为闰年 26

13、实例020验证登录信息的合法性 27

14、实例023判断用户输入月份的季节 31

15、实例024使用while循环语句与自增

16、实例025使用for循环输出杨辉三角形 34

17、实例028使用for循环输出空心的菱形 38

18、实例031获取一维数组的最小值 44

19、实例032将二维数组中的行列互换 45

20、实例033利用数组随机抽取幸运观众 47

21、实例037使用选择排序法对数组排序 53

22、实例038使用冒泡排序法对数组排序 55

23、实例039使用快速排序法对数组排序 57

24、实例040使用直接插入法对数组排序 59

25、实例041使用sort()方法对数组排序 61

26、实例042反转数组中元素的顺序 63

27、实例045成员变量的默认初始化值 68

28、实例052重新计算对象的哈希码 76

29、实例065适配器模式的简单应用 100

30、实例066普通内部类的简单应用 102

31、实例067局部内部类的简单应用 103

32、实例068匿名内部类的简单应用 104

33、实例069静态内部类的简单应用 105

34、实例070实例化Class类的几种方式 107

35、实例078利用反射重写toString()方法 119

36、实例079将数字格式化为货币字符串 122

37、实例081 String类格式化当前日期 125

38、实例083字符与Unicode码的转换 128

39、实例086判断网页请求与FTP请求 132

40、实例088判断字符串是否为数字 135

41、实例093获取字符串中汉字的个数 141

42、实例094批量替换某一类字符串 142

43、实例098用字符串构建器追加字符 147

44、实例099去掉字符串中的所有空格 148

45、范例101用动态数组保存学生姓名 152

46、实例102用List集合传递学生信息 153

47、实例105 for循环遍历ArrayList 159

48、实例106 Iterator遍历ArrayList 159

49、实例107 ListIterator逆序遍历ArrayList 160

50、实例132以树结构显示文件路径 193

51、实例133查找替换文本文件内容 194

52、实例137删除文件夹中的.tmp文件 198

53、实例138将图片文件保存到数据库 199

54、实例139从数据库读取图片文件 200

55、实例140窗体动态加载磁盘文件 201

56、实例141删除文件夹中所有文件 202

57、实例144防止创建多个字符串对象 206

58、实例146对大文件实现分割处理 208

59、实例147将分割后的文件重新合并 209

60、实例148读取属性文件单个属性值 210

61、实例149向属性文件中添加信息 211

62、实例150在复制文件时使用进度条 212

63、实例151从XML文件中读取数据 213

64、实例154批量复制指定扩展名文件 217

65、实例156搜索指定文件夹中的文件 219

66、实例160将压缩包解压到指定文件夹 223

67、实例162深层文件夹压缩包的释放 226

68、实例164 Apache实现文件解压缩 228

69、实例165把窗体压缩成ZIP文件 229

70、实例169为RAR压缩包添加注释 234

71、实例170获取压缩包详细文件列表 235

72、实例171从RAR压缩包中删除文件 237

73、实例172在压缩文件中查找字符串 238

74、实例173重命名RAR压缩包中文件 239

75、实例174创建自解压RAR压缩包 240

76、实例181使用枚举接口遍历元素 250

77、实例187从上次关闭位置启动窗体 260

78、实例188始终在桌面最顶层显示窗体 261

79、实例190根据桌面大小调整窗体大小 263

80、实例195实现带背景图片的窗体 270

81、实例196背景为渐变色的主界面 271

82、实例202设置信息提示对话框的图标 279

83、实例203指定打开对话框的文件类型 280

84、实例204为保存对话框设置默认文件名 282

85、实例225复选框与单选按钮菜单项 311

86、实例239查看和修改线程优先级 333

87、实例243使用方法实现线程同步 339

88、实例244使用特殊域变量实现线程同步 341

89、实例247使用线程池优化多线程编程 346

90、实例249获得内网的所有IP地址 351

91、实例252网络资源的单线程下载 355

92、实例253网络资源的多线程下载 357

93、实例254下载网络资源的断点续传 359

94、实例257设置等待连接的超时时间 364

95、实例259接收和发送Socket信息 367

96、实例262防止Socket传递汉字乱码 375

97、实例271基于Socket的数据库编程 393

98、实例272使用Proxy创建代理服务器 396

99、实例276 JDBC连接MySQL数据库 406

100、实例277连接SQL Server 2005数据库 407

101、实例278 JDBC连接Oracle数据库 408

102、实例283 SQL Server数据备份 416

103、实例284 SQL Server数据恢复 419

104、实例290将员工信息添加到数据表 430

105、实例291添加数据时使用数据验证 431

106、实例292插入用户登录日志信息 432

107、实例295插入数据时过滤危险字符 436

108、实例297把数据复制到另一张表中 438

109、实例300在删除数据时给出提示信息 442

二、java annotation有什么作用

1、Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。

2、annotation一般作为一种辅助途径,应用在软件框架或工具中,在这些工具类中根据不同的 annontation注解信息采取不同的处理过程或改变相应程序元素(类、方法及成员变量等)的行为。

3、例如:Junit、Struts、Spring等流行工具框架中均广泛使用了annontion。使代码的灵活性大提高。

4、从java5版本开始,自带了三种标准annontation类型,

5、java.lang.Override是一个marker annotation类型,它被用作标注方法。它说明了被标注的方法重载了父类的方法,起到了断言的作用。如果我们使用了这种annotation在一个没有覆盖父类方法的方法时,java编译器将以一个编译错误来警示。

6、这个annotaton常常在我们试图覆盖父类方法而确又写错了方法名时加一个保障性的校验过程。

7、Deprecated也是一种marker annotation。当一个类型或者类型成员使用@Deprecated修饰的话,编译器将不鼓励使用这个被标注的程序元素。所以使用这种修饰具有一定的“延续性”:如果我们在代码中通过继承或者覆盖的方式使用了这个过时的类型或者成员,虽然继承或者覆盖后的类型或者成员并不是被声明为@Deprecated,但编译器仍然要报警。

8、注意:@Deprecated这个annotation类型和javadoc中的@deprecated这个tag是有区别的:前者是java编译器识别的,而后者是被javadoc工具所识别用来生成文档(包含程序成员为什么已经过时、它应当如何被禁止或者替代的描述)。

9、此注解能告诉Java编译器关闭对类、方法及成员变量的警告。

10、有时编译时会提出一些警告,对于这些警告有的隐藏着Bug,有的是无法避免的,对于某些不想看到的警告信息,可以通过这个注解来屏蔽。

11、SuppressWarning不是一个marker annotation。它有一个类型为String[]的成员,这个成员的值为被禁止的警告名。对于javac编译器来讲,被-Xlint选项有效的警告名也同样对@SuppressWarings有效,同时编译器忽略掉无法识别的警告名。

三、Java中full gc什么意思

除直接调用System.gc外,触发Full GC执行的情况有如下四种。

旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误:

java.lang.OutOfMemoryError: Java heap space

为避免以上两种状况引起的FullGC,调优时应尽量做到让对象在Minor GC阶段被回收、让对象在新生代多存活一段时间及不要创建过大的对象及数组。

PermanetGeneration中存放的为一些class的信息等,当系统中要加载的类、反射的类和调用的方法较多时,Permanet Generation可能会被占满,在未配置为采用CMS GC的情况下会执行Full GC。如果经过Full GC仍然回收不了,那么JVM会抛出如下错误信息:

java.lang.OutOfMemoryError: PermGen space

为避免Perm Gen占满造成Full GC现象,可采用的方法为增大Perm Gen空间或转为使用CMS GC。

3. CMS GC时出现promotion failed和concurrent mode failure

对于采用CMS进行旧生代GC的程序而言,尤其要注意GC日志中是否有promotion failed和concurrent mode failure两种状况,当这两种状况出现时可能会触发Full GC。

promotionfailed是在进行Minor GC时,survivor space放不下、对象只能放入旧生代,而此时旧生代也放不下造成的;concurrent mode failure是在执行CMS GC的过程中同时有对象要放入旧生代,而此时旧生代空间不足造成的。

应对措施为:增大survivorspace、旧生代空间或调低触发并发GC的比率,但在JDK 5.0+、6.0+的版本中有可能会由于JDK的bug29导致CMS在remark完毕后很久才触发sweeping动作。对于这种状况,可通过设置-XX:CMSMaxAbortablePrecleanTime=5(单位为ms)来避免。

4.统计得到的Minor GC晋升到旧生代的平均大小大于旧生代的剩余空间

这是一个较为复杂的触发情况,Hotspot为了避免由于新生代对象晋升到旧生代导致旧生代空间不足的现象,在进行Minor GC时,做了一个判断,如果之前统计所得到的Minor GC晋升到旧生代的平均大小大于旧生代的剩余空间,那么就直接触发Full GC。

例如程序第一次触发MinorGC后,有6MB的对象晋升到旧生代,那么当下一次Minor GC发生时,首先检查旧生代的剩余空间是否大于6MB,如果小于6MB,则执行Full GC。

当新生代采用PSGC时,方式稍有不同,PS GC是在Minor GC后也会检查,例如上面的例子中第一次Minor GC后,PS GC会检查此时旧生代的剩余空间是否大于6MB,如小于,则触发对旧生代的回收。

除了以上4种状况外,对于使用RMI来进行RPC或管理的Sun JDK应用而言,默认情况下会一小时执行一次Full GC。可通过在启动时通过- java-Dsun.rmi.dgc.client.gcInterval=3600000来设置Full GC执行的间隔时间或通过-XX:+ DisableExplicitGC来禁止RMI调用System.gc。