java编程的记事本:
import java.util.*;
public class JieChengExample
{
public static void main(String args[])
{
Scanner input=new Scanner(System.in);
int n,sum;
Jiecheng jie=new Jiecheng();
System.out.print("输入n的值:");//输入有几个阶乘相加
n=input.nextInt();
sum=0;
for(int i=1;i<=n;i++)
{
sum=sum+jie.jiecheng(i);//这是n个阶乘相加
}
System.out.println("1!+2!+3!+....+n!的和是:"+sum);
}
}
class Jiecheng
{
public int jiecheng(int temp)//算阶乘的方法
{
int sum=1;
for(int i=1;i<=temp;i++)
{
sum=sum*i; //计算阶乘
}
return sum;//将一个阶乘返回
}
}
2.java赛马游戏:
import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){
}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度为"+red);
System.out.println("green的速度为"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵达终点线");
}
if(green >= 500){
System.out.println("green先抵达终点线");
}
if(green ==500 && red ==500 ){
System.out.println("两个同时到达");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
S...import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){
}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度为"+red);
System.out.println("green的速度为"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵达终点线");
}
if(green >= 500){
System.out.println("green先抵达终点线");
}
if(green ==500 && red ==500 ){
System.out.println("两个同时到达");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
System.out.println("Greenwin"+green);
}
if(red == green){
System.out.println("equal");*/
JAVA的介绍:
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Ⅱ java编程运算几个具体实例
三个案例
1、编写一个方法fun_01(),
判断一个整数是否包含数字7.
public class Test01{
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入数值: ");
int num = sc.nextInt();
System.out.println(func2( num));
}
public static boolean fun_01(int num){
int n;
boolean flag=false;
while(num!=0){
n=num%10;
if(n==7){
flag=true;
break;
}
num /= 10;
}
return flag;
}
}
2.metod2(),
对输入的任意字符串“1,4,7,13,5,17,9”
转换为数组元素是整数元素
,需要保存在整形数组中且实现排序输出“1 4 5 7 9 13 17”
public class Demo {
public static void main(String[] args) {
// String str =("1,4,7,13,5,17,9");
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字字符串,并用逗号隔开");
String str = sc.next();
metod2(str);
}
public static void metod2(String str){
String array[] = str.split(",");
int p[]=new int[array.length];
for(int i=0;i<array.length;i++){
p[i]=Integer.parseInt(array[i]);
}
//Arrays.sort(p);
for(int i=0;i<p.length-1;i++){
for(int j=0;j<p.length-1-i;j++){
if(p[j]>p[j+1]){
int temp =p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
for(int i=0;i<p.length;i++){
System.out.print(p[i]+" ");
}
}
}
3,编写一个方法,传入数值,打印出金字塔
public static void print(int num){
for(int i=0;i<num;i++){
for(int k=0;k<num-i-1;k++){
System.out.print(" ");
}
for(int j=0;j<2*i+1;j++){
System.out.print("*");
}
System.out.println();
}
}
Ⅲ Java开发实战经典的作品目录
第1部分 Java基础程序设计
第1章 Java概述及开发环境搭建
视频讲解:35分钟
1.1 认识Java
1.2 Java开发环境搭建
1.3 本章要点
1.4 习题
第2章 简单的Java程序
视频讲解:20分钟
2.1 一个简单的Java范例
2.2 Java程序的注释
2.3 Java中的标识符
2.4 Java中的关键字
2.5 变量和常量
2.6 本章要点
2.7 习题
第3章 Java基础程序设计
视频讲解:2小时09分钟
3.1 数据类型划分
3.2 基本数据类型
3.3 数据类型的转换
3.4 运算符、表达式与语句
3.5 选择与循环语句
3.6 本章要点
3.7 习题
第4章 数组与方法
视频讲解:1小时48分钟
4.1 数组的定义及使用
4.2 方法的声明及使用
4.3 数组的引用传递
4.4 Java新特性对数组的支持
4.5 本章要点
4.6 习题
第2部分 Java面向对象程序设计
第5章 面向对象(基础篇)
视频讲解:6小时34分钟
5.1 面向对象的基本概念
5.2 类与对象
5.3 封装性
5.4 构造方法
5.5 匿名对象
5.6 实例讲解——类设计分析
5.7 String
5.8 引用传递及基本应用
5.9 this关键字
5.10 static关键字
5.11 代码块
5.12 构造方法私有化
5.13 对象数组
5.14 内部类
5.15 实例讲解
5.16 本章要点
5.17 习题
第6章 面向对象(高级篇)
视频讲解:4小时20分钟
6.1 继承的基本概念
6.2 继承的进一步研究
6.3 范例——继承的应用
6.4 final关键字
6.5 抽象类的基本概念
6.6 接口的基本概念
6.7 对象的多态性
6.8 instanceof关键字
6.9 抽象类与接口的应用
6.10 实例分析:宠物商店
6.11 Object类
6.12 包装类
6.13 匿名内部类
6.14 本章要点
6.15 习题
第7章 异常的捕获及处理
视频讲解:1小时18分钟
7.1 异常的基本概念
7.2 throws与throw关键字
7.3 Exception类与Runtime Exception类
7.4 自定义异常类
7.5 断言
7.6 本章要点
7.7 习题
第8章 包及访问控制权限
视频讲解:55分钟
8.1 包的概念及使用
8.2 jar命令的使用
8.3访问控制权限
8.4 Java命名规范
8.5 本章要点
8.6 习题
第3部分 Java应用程序设计
第9章 多线程
视频讲解:2小时36分钟
9.1 进程与线程
9.2 Java中线程的实现
9.3 线程的状态
9.4 线程操作的相关方法
9.5 线程操作范例
9.6 同步与死锁
9.7 线程操作案例——生产者及消费者
9.8 线程的生命周期
9.9 本章要点
9.10 习题
第10章 泛型
视频讲解:1小时52分钟
第11章 Java常用类库
视频讲解:5小时38分钟
第12章 Java IO
视频讲解:7小时52分钟
第13章 Java类集
视频讲解:3小时50分钟
第14章 枚举
视频讲解:55分钟
第15章 Java反射机制
视频讲解:2小时24分钟
第16章 Annotation
视频讲解:1小时19分钟
第17章 Java数据库编程
视频讲解:4小时15分钟
第18章 图形界面
视频讲解:6小时15分钟
第19章 Java网络编程
视频讲解:1小时8分钟
第20章 Java新IO
视频讲解:1小时33分钟
第21章 Eclipse开发工具
视频讲解:1小时35分钟
参考文献
JAVA中绑定变量的测试代码
一段在JAVA中绑定变量的测试代码,大家可以将代码测试一下,理解其实现原理,对大家学习肯定能有所帮助,中国自学编程网为大家整理。
import java.sql.*;
import oracle.jdbc.driver.*;
class ConOra {
public static void main(String args[] ) throws SQLException{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection(jdbc:oracle:thin:@192.168.1.152:1521:whx,system,lukewhx);
PreparedStatement stmt ;
ResultSet rset ;
String v_sql;
/*
for (int i =1;i<=1000;i++){
v_sql=select object_name from objects where object_id=+i;
stmt =conn.prepareStatement(v_sql);
rset=stmt.executeQuery();
stmt.close();
}
*/
for (int i =1 ;i<=1000;i++ ) {
v_sql = select object_name from objects where object_id= :x ;
stmt=conn.prepareStatement(v_sql);
stmt.setString(1,Integer.toString(i));
rset = stmt.executeQuery();
stmt.close();
}
System.out.println(Execute OK);
}
}
Ⅳ java编程实例
我是Java初学者,我看了你的问题后想了很久终于把它做出来了,你看看吧,方法不是很好,但能满足你的要求:
import java.util.Scanner;
public class Check2{
int t;
char[] chs = new char[500]; //输入的句子不能超过500个字符
Check2() {
String str;
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串(输入的字符串不能超过500个字符):");
str = sc.nextLine();
t=str.length();
for (int i = 0; i < t; i ++) {
chs[i] = str.charAt(i); //将输入的字符串装入数组
}
}
}
class FuZhi{
char[] letter=new char[52]; //将52个字母(含大小写)装入数组
FuZhi(){
char p;
int i=0,j=26;
for(p='A';p<='Z';p++){
letter[i]=p; //这句刚才写掉了,加上去后程序就完整了
i++; //将A-Z装入数组
}
for(p='a';p<='z';p++){
letter[j]=p; //将a-z装入数组,并且从数组的第26个开始装入(letter[0]-letter[25]已被装入了字母)
j++;
}
}
}
class display{
public static void main(String[] args){
char temp;
int t;
int[] n= new int [52]; //用于统计每个字符出现的次数
Check2 k =new Check2();
FuZhi m=new FuZhi();
for(int j=0;j<52;j++){
t=0; //令t为0,,并且使上一个字母统计完成后
//将其再次初始化(如A统计完成后,当程序统计B出现的次数时,使B的初始次数为0)
for(int i=0;i<k.t;i++){
if(m.letter[j]==k.chs[i]){ //比较字符是否相同,如相同,使t自加一
t++;
n[j]=t; //数组n来统计每个字母出现的次数,即其中的每一个元素代表一个字母在程序中出现的次数
}
}
}
System.out.println("总共输入了"+k.t+"个字符:\n"+"其中");
for(int i=0;i<52;i++){
System.out.println("字母"+m.letter[i]+"出现的次数为:"+n[i]+"次");
}
}
}
写掉了一句“letter[i]=p;”,现在已经补上了,程序可以运行了,你试一下吧!!!
Ⅳ 谁能跟我说几个JAVA多态,在现实生活中应用的例子,不要说代码和概念,就只说案例
有一个比较经典的多态实例:有一个Animal类,它有Cat,和Dog两个子类,在Animal中有个say方法,当Cat调用这个方法的时候输出的是“小猫喵喵喵”,这就是Java多态的实现。
1、定义一种动物,该类型的动物有叫的属性。
2、分别定义猫,狗,鸟,都继承于该动物,都有叫的属性。
3、分别表示出各个具体小动物的叫声,例如猫的叫声:喵、狗的叫声:汪、鸟的叫声:咻,点是叫声,实现各个具体小动物用的叫声的方法是用的同一个函数名称,就是动物的叫声函数。
JRE
是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可。
Ⅵ 在Java中,接口有什么实际点的应用最好给个例子
1.
面向对象多态的实现离不开接口,使用接口,比如说:“A类调用B类,不如调用B接口来的灵活,因为你可以使用接口来使用B1,B2等实现类交互,方便代码的重用。
”
你在传递参数或返回值时,传入A,不如将A剥离共性抽象一个A接口出来灵活,抽象之后你可以随时替换传入的参数(只要实现了A接口),避免了大量的改动,返回值亦同。甚至很多模式的实现也离不开接口(工厂模式等);
2.
解耦,复用等都离不开接口,抽象共性提高复用度,当然可用实体类,但是远不如用接口或抽象类来的方便,用接口抽象共性,用具体类实现个性,可以很大程度上解耦,和提高复用度,解耦可以方便修改维护,提高复用可以减少成本!
多重继承只有接口能实现.
接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.
Ⅶ Java开发实战1200例的作品目录
第1篇 图形图像篇
第1章 Java图形与文本 2
1.1 绘制图形和文本 3
实例001 绘制直线 3
实例002 绘制矩形 4
实例003 绘制正方形 5
实例004 绘制椭圆 6
实例005 绘制圆弧 7
实例006 绘制指定角度的填充扇形 8
实例007 绘制多边形 9
实例008 绘制二次曲线 10
实例009 绘制三次曲线 12
实例010 绘制文本 13
实例011 设置文本的字体 14
实例012 设置文本和图形的颜色 15
1.2 笔画和图形处理 16
实例013 设置笔画的粗细 16
实例014 设置笔画样式 18
实例015 设置连接方式 19
实例016 设置虚线模式 20
实例017 缩放图形 22
实例018 旋转图形 23
实例019 斜切图形 24
实例020 为图形填充渐变色 25
实例021 平移坐标轴 27
1.3 绘制图案 28
实例022 绘制五环图案 28
实例023 绘制艺术图案 29
实例024 绘制花瓣 30
实例025 绘制公章 32
1.4 图形的合并运算 33
实例026 图形的加运算 33
实例027 图形的减运算 35
实例028 图形的交运算 36
实例029 图形的异或运算 37
第2章 Java图像处理 39
2.1 图像处理 40
实例030 绘制图像 40
实例031 缩放图像 41
实例032 翻转图像 42
实例033 旋转图像 44
实例034 倾斜图像 45
实例035 裁剪图片 46
2.2 颜色处理 47
实例036 调整图片的亮度 47
实例037 转换彩色图片为灰度图片 49
实例038 使用像素值生成图像 50
第3章 绘图特效 52
3.1 文字特效 53
实例039 立体效果的文字 53
实例040 阴影效果的文字 54
实例041 倾斜效果的文字 55
实例042 渐变效果的文字 56
实例043 会变色的文字 58
实例044 水印文字特效 59
实例045 顺时针旋转文字 60
实例046 动态绘制文本 62
实例047 中文验证码 64
实例048 图片验证码 65
实例049 带干扰线的验证码 66
3.2 图片特效 68
实例050 纹理填充特效 68
实例051 水波效果的图片 69
实例052 局部图像放大 71
实例053 图片半透明特效 73
实例054 图片溶合特效 74
实例055 以椭圆形显示图像 75
实例056 图片百叶窗特效 76
实例057 图片马赛克特效 78
实例058 模糊 80
实例059 锐化 81
实例060 照亮边缘 82
实例061 反向 84
实例062 光栅图像 85
实例063 图片倒影效果 87
第4章 动画和游戏 90
4.1 文字动画 91
实例064 文字淡入淡出 91
实例065 文字缩放 93
实例066 文字跑马灯 94
实例067 字幕显示 96
实例068 文字闪现 98
实例069 滚动广告字幕 99
4.2 图片动画 101
实例070 图片淡入淡出 101
实例071 随鼠标指针移动的图片 103
实例072 通过键盘移动图片 104
实例073 图片动态拉伸 106
实例074 桌面弹球 107
实例075 循环滚动图片 109
实例076 台球动画 111
实例077 电影胶片特效 113
实例078 随机移动的图片 115
实例079 雪花飘落动画 116
实例080 图片旋转动画 118
实例081 图片闪现动画 119
实例082 帧动画效果 121
实例083 水波动画 123
4.3 游戏开发 125
实例084 图片配对游戏 125
实例085 小猪走迷宫 128
实例086 拼图游戏 130
实例087 海滩捉螃蟹 133
实例088 荒山打猎游戏 135
实例089 打字母游戏 137
实例090 警察抓小偷 139
实例091 掷骰子 141
实例092 画梅花 143
实例093 打造自己的开心农场 144
第5章 打印报表 147
5.1 打印控制 148
实例094 打印对话框 148
实例095 实现打印 149
实例096 打印图形 150
实例097 打印图片 152
实例098 打印预览 153
实例099 倒序打印 155
实例100 为打印内容添加水印 157
实例101 自动为打印内容添加水印 158
5.2 打印的应用 160
实例102 打印快递单 160
实例103 打印报表 162
实例104 打印桌面图片 164
实例105 打印柱形图表 165
实例106 打印饼形图表 167
实例107 打印折线图表 169
实例108 打印区域图表 170
实例109 打印带柱形图表的报表 172
实例110 打印带饼形图表的报表 174
实例111 打印带折线图表的报表 175
实例112 导出报表到Excel表格 177
实例113 导出报表到PDF文档 179
实例114 批量打印条形码 181
实例115 相册特效打印程序 183
实例116 镜面效果文本打印 186
实例117 透明的打印预览对话框 187
第6章 管理图像文件 189
6.1 图像的修改与保存 190
实例118 保存图片文件 190
实例119 修改图片文件名 191
实例120 缩放图片并保存 192
实例121 为图片添加水印并保存 194
实例122 溶合两张图片并保存 196
实例123 模糊图片并保存 197
实例124 锐化图片并保存 199
实例125 照亮边缘并保存 200
实例126 反向并保存图片 202
实例127 填充纹理并保存为图片 204
6.2 图片在数据库中的存取 205
实例128 图片存储到Access数据库中 205
实例129 图片存储到MySQL数据库中 206
实例130 图片存储到SQLServer数据库中 208
实例131 读取Access数据库中存储的图片 209
实例132 读取MySQL数据库中存储的图片 210
实例133 读取SQLServer数据库中存储的图片 211
实例134 修改Access数据库中存储的图片 212
实例135 修改MySQL数据库中存储的图片 214
实例136 修改SQLServer数据库中存储的图片 215
6.3 其他应用 216
实例137 获取鼠标指针在任意位置的颜色值 216
实例138 图片浏览器 218
实例139 转换图片格式 219
实例140 绘制石英钟 221
实例141 画图程序 222
实例142 屏幕抓图程序 224
实例143 屏幕放大镜 225
第2篇 JFreeChart图表篇
第7章 JFreeChart基本操作 230
7.1 JFreeChart基础操作 231
实例144 基本饼图 231
实例145 显示图示 232
实例146 工具栏提示 233
实例147 乱码问题 235
实例148 显示数值 237
实例149 抗锯齿设置 238
7.2 设置图表背景 239
实例150 设置背景图片 239
实例151 设置图片对齐方式 241
实例152 设置背景图片透明度 242
实例153 设置背景颜色 243
7.3 处理图表的边框 244
实例154 隐藏图表边框 244
实例155 图表边框笔触 245
实例156 图表边框颜色 247
7.4 修改图表的图示 248
实例157 设置图示背景色 248
实例158 设置图示边框 249
实例159 设置图示边框颜色 250
实例160 设置图示边缘间距 251
实例161 设置图示字体颜色 252
实例162 设置图示位置 253
第8章 基础图表技术 255
8.1 普通饼图 256
实例163 分离饼图 256
实例164 椭圆形饼图 257
实例165 饼图的阴影 258
实例166 饼图的分类边框颜色 260
实例167 加粗饼图分类边框 261
实例168 设置饼图颜色 262
实例169 饼图旋转角度 263
实例170 饼图旋转顺序 265
实例171 隐藏分类标签连接线 266
8.2 3D饼图 267
实例172 创建3D饼图 267
实例173 3D饼图透明度 269
实例174 3D饼图的Z轴 270
实例175 逆时针旋转3D饼图 271
实例176 顺时针旋转3D饼图 272
8.3 多饼图 274
实例177 实现多饼图 274
实例178 多饼图乱码 275
实例179 多饼图的展示方式 277
实例180 3D多饼图 278
8.4 基本柱形图 280
实例181 简单柱型图 280
实例182 柱形图角度 282
实例183 柱形图负值 283
8.5 X坐标轴 285
实例184 X轴字体 285
实例185 X轴标签字体 287
实例186 X轴标签角度 288
实例187 X轴显示情况 290
实例188 X轴尺度颜色 292
实例189 隐藏X轴尺度 293
实例190 X轴尺度笔触 295
实例191 X轴尺度标签角度 296
实例192 X轴分类的间距 298
实例193 X轴分类与原点的间距 299
实例194 X轴的显示位置 300
8.6 Y坐标轴 302
实例195 Y轴字体 302
实例196 Y轴标签字体 304
实例197 Y轴显示情况 305
实例198 Y轴尺度颜色 307
实例199 隐藏Y轴尺度 309
实例200 Y轴尺度笔触 310
实例201 Y轴尺度标签角度 312
实例202 Y轴起始值 313
实例203 Y轴箭头 314
实例204 Y轴主要刻度线 316
实例205 Y轴主要刻度线长度 317
实例206 Y轴次要刻度线 319
实例207 Y轴次要刻度线长度 320
实例208 设置Y轴最大值 322
实例209 设置Y轴数据范围 323
实例210 Y轴的显示位置 324
8.7 高级柱形图 326
实例211 设置网格竖线 326
实例212 设置网格竖线颜色 328
实例213 设置柱形图文本注解 329
实例214 设置柱形图文本注解字体 331
实例215 设置柱形图文本注解颜色 333
实例216 设置柱形图文本注解锚点 334
实例217 设置柱形图文本注解类别锚点 336
实例218 设置柱形图文本注解旋转锚点 338
实例219 设置柱形图线条注解 339
实例220 绘制柱形效果 341
实例221 柱形图阴影 342
实例222 柱形图阴影偏移 344
实例223 设置柱形的颜色 345
实例224 绘制3D柱形图 346
实例225 标记柱形图区间 348
实例226 多系列柱形图 350
实例227 多系列3D柱形图 352
第9章 扩展图表技术 354
9.1 区域图 355
实例228 基本区域图 355
实例229 显示多分类区域图 357
实例230 设置区域图透明度 359
实例231 添加说明文字 360
实例232 设置说明文字位置 362
实例233 区域图X轴显示位置 363
实例234 区域图X轴标签角度 364
实例235 区域图X轴尺度标签角度 366
实例236 设置区域颜色 367
9.2 气泡图 368
实例237 基本气泡图 368
实例238 气泡图X轴标签 371
实例239 气泡图Y轴标签 372
实例240 设置坐标范围 374
实例241 设置透明度 375
实例242 设置气泡颜色 377
实例243 气泡图X轴标签角度 378
实例244 气泡图X轴尺度标签角度 379
9.3 分步图 381
实例245 基本分步图 381
实例246 加粗分步图 383
实例247 显示虚线效果 385
实例248 设置分步图颜色 386
实例249 隐藏分步图 387
实例250 分步图X轴显示位置 389
实例251 分步图X轴标签角度 390
实例252 分步图X轴尺度标签角度 391
9.4 联合分类图 393
实例253 生成线形图与柱形图 393
实例254 设置图表高度 395
实例255 设置图表位置 397
实例256 线形图与分布图 398
9.5 双轴图 400
实例257 基本双轴图 400
实例258 基本双Y图 402
实例259 双Y轴字体 404
实例260 3D双轴图 406
实例261 设置双轴图颜色 407
实例262 双轴图X轴标签角度 409
实例263 双轴图X轴尺度标签角度 410
9.6 折线图 412
实例264 基本折线图 412
实例265 多条折线图 414
实例266 水平折线图 416
实例267 隐藏折线图 417
实例268 加粗折线 419
实例269 显示折线节点 420
实例270 生成节点图 421
实例271 设置虚线图 423
实例272 设置折线颜色 424
实例273 3D折线图 426
实例274 XY折线图 427
实例275 排序折线图 429
9.7 环形图 431
实例276 基本环形图 431
实例277 环形图字体 432
实例278 设置环形深度 434
实例279 分离环形图 436
实例280 椭圆环形图 437
实例281 环形的阴影偏移 438
实例282 环形的简单标签 439
实例283 环形的旋转角度 441
9.8 堆积条形图 442
实例284 基本堆积条形图 442
实例285 横向堆积条形图 445
实例286 设置边线距离 446
实例287 渲染分组堆积条形图 447
9.9 时序图 450
实例288 基本时序图 450
实例289 设置时间显示格式 452
实例290 添加双时间轴 453
实例291 双时间轴位置 455
实例292 动态显示十字标记 456
实例293 添加Y轴标记 458
实例294 添加X轴标记 459
实例295 设置刻度单位 461
实例296 设置时间轴范围 462
第3篇 网络技术篇
第10章 网络应用基础 466
10.1 网络地址解析 467
实例297 获取本地主机的IP地址 467
实例298 获取本地主机的域名和主机名 468
实例299 通过域名获得IP地址 469
实例300 通过IP地址获得域名和主机名 470
实例301 获得内网的所有IP地址 472
10.2 网络资源管理 474
实例302 获取网络资源的大小 474
实例303 解析网页中的内容 475
实例304 网络资源的单线程下载 476
实例305 网络资源的多线程下载 478
实例306 下载网络资源的断点继传 480
第11章 TCP套接字 483
11.1 Socket基础 484
实例307 建立服务器套接字 484
实例308 建立客户端套接字 485
实例309 设置等待连接的超时时间 486
实例310 获取Socket信息 487
实例311 接收和发送Socket信息 488
实例312 关闭Socket缓冲 491
11.2 TCP网络通信 492
实例313 使用Socket通信 492
实例314 防止Socket传递汉字乱码 495
实例315 使用Socket传递对象 497
实例316 使用Socket传输图片 499
实例317 使用Socket传输音频 501
实例318 使用Socket传输视频 503
实例319 一个服务器与一个客户端通信 504
实例320 一个服务器与多个客户端通信 506
实例321 客户端一对多通信 508
实例322 客户端一对一通信 509
实例323 基于Socket的数据库编程 511
实例324 使用Proxy创建代理服务器 513
实例325 使用ProxySelector选择代理服务器 514
11.3 TCP实用程序 516
实例326 聊天室服务器端 516
实例327 聊天室客户端 518
第12章 邮件收发 521
12.1 简单邮件 522
实例328 配置邮件服务 522
实例329 发送邮件 526
实例330 接收邮件 528
12.2 复杂邮件 529
实例331 发送带附件的邮件 529
实例332 接收带附件的邮件 531
实例333 发送邮件时进行身份验证 533
实例334 接收邮件时进行身份验证 535
实例335 显示未读邮件 536
实例336 显示已读邮件 539
第4篇 Java安全与Applet应用篇
第13章 Java安全 544
13.1 Java对称加密 545
实例337 使用BASE64加密 545
实例338 使用BASE64解密 546
实例339 生成DES的密钥 547
实例340 使用DES加密 548
实例341 使用DES解密 549
实例342 PBE的盐值 551
实例343 生成PBE的密钥 552
实例344 使用PBE加密 552
实例345 使用PBE解密 553
13.2 Java非对称加密 555
实例346 生成RSA密钥对 555
实例347 使用RSA的签名 556
实例348 RSA服务端加密 557
实例349 RSA客户端加密 559
实例350 DH服务端加密 560
实例351 DH客户端加密 563
13.3 Java单项加密 565
实例352 使用MD5加密 565
实例353 使用Hmac加密 566
实例354 使用DSA加密 568
第14章 Applet的应用 570
14.1 Applet在html中的使用 571
实例355 在html中显示Applet 571
实例356 设置Applet的显示位置 572
实例357 Applet获取页面传递的参数 573
实例358 使用<applet>标记中的archive属性 574
14.2 Applet的方法 576
实例359 使用paint()方法绘制页面内容 576
实例360 使用update()方法更新页面内容 577
实例361 使用repaint()方法重新绘制页面 578
实例362 Applet显示地址栏上的路径 579
实例363 Applet显示class存放的路径 581
14.3 Applet中的文字处理 582
实例364 控制Applet字体大小 582
实例365 控制Applet文字位置 583
实例366 控制Applet字体样式 584
实例367 Applet中绘制立体效果的文字 585
实例368 Applet中绘制阴影效果的文字 586
实例369 Applet中绘制倾斜效果的文字 587
实例370 Applet中绘制渐变效果的文字 588
实例371 Applet中绘制会变色的文字 590
实例372 Applet中绘制顺时针旋转的文字 591
实例373 Applet中动态绘制文本 593
14.4 Applet中的图形处理 594
实例374 Applet绘制直线 594
实例375 Applet绘制矩形 596
实例376 Applet绘制圆角矩形 597
实例377 Applet绘制椭圆 598
实例378 Applet绘制圆弧 599
实例379 Applet绘制折线 600
实例380 Applet绘制多角形 601
实例381 Applet绘制图片 602
实例382 Applet中的图形加运算 603
实例383 Applet中的图形减运算 604
实例384 Applet中的图形交运算 606
实例385 Applet中的图形异或运算 607
实例386 Applet中绘制纹理填充图形 608
14.5 Applet中的图像处理 609
实例387 Applet中缩放图像 609
实例388 Applet中翻转图像 610
实例389 Applet中旋转图像 612
实例390 Applet中倾斜图像 613
实例391 Applet中调整图片的亮度 614
实例392 Applet中绘制中文验证码 615
实例393 Applet中绘制图片验证码 617
实例394 Applet中绘制带干扰线的验证码 618
实例395 Applet中模糊图像 620
实例396 Applet中锐化图像 621
实例397 Applet中照亮图像边缘 622
实例398 Applet中反向图像 624
实例399 Applet中图像动态拉伸 625
14.6 Applet中的文字动画 627
实例400 Applet中文字缩放动画 627
实例401 Applet中文字跑马灯动画 628
实例402 Applet中字幕显示动画 630
实例403 Applet中文字闪现动画 631
实例404 Applet中滚动广告字幕动画 633
第5篇 XML篇
第15章 初识XML 636
15.1 XML语言基础 637
实例405 简单的XML 637
实例406 验证XML的格式 638
实例407 XML属性的使用 639
实例408 XML中CDATA的使用 640
15.2 XML与CSS 642
实例409 在XML中使用CSS 642
实例410 CSS格式化XML布局 643
实例411 CSS格式化XML背景色 645
实例412 CSS格式化XML字体 647
实例413 CSS改变XML中的鼠标手势 649
实例414 CSS在XML中添加背景图 651
实例415 CSS制作XML表格 652
15.3 XML与XSLT的元素 654
实例416 在XML使用XSLT 654
实例417 使用XSLT中的template 656
实例418 使用XSLT中的value-of 657
实例419 使用XSLT中的for-each 659
实例420 使用XSLT中的if 660
实例421 使用XSLT中的sort 662
实例422 使用XSLT中的choose 664
实例423 使用XSLT中的-of 665
实例424 使用XSLT中的apply-templates 667
实例425 使用XSLT中的attribute 669
实例426 使用XSLT中的elements 670
15.4 XML与XSLT的内建函数 672
实例427 使用XSLT中的generate-id() 672
实例428 使用XSLT中的format-number() 674
实例429 使用XSLT中的document() 675
15.5 DTD的引用与验证 678
实例430 在XML内部定义DTD 678
实例431 在XML外部引用DTD 679
实例432 验证XML是否符合DTD的定义 680
15.6 使用DTD定义XML元素 682
实例433 在DTD声明元素 682
实例434 在DTD声明重复元素 683
实例435 在DTD声明选择性元素 684
实例436 在DTD中使用ENTITY 686
15.7 使用DTD定义XML属性 687
实例437 在DTD声明元素属性 687
实例438 在DTD声明带有#IMPLIED的属性 688
实例439 在DTD声明带有#REQUIRED的属性 690
实例440 在DTD声明带有#FIXED的属性 691
实例441 在DTD声明列举属性值 692
实例442 类型为ID的属性实例 693
实例443 类型为IDREF的属性实例 695
实例444 类型为NMTOKEN的属性实例 697
第16章 XML Schema 699
16.1 XSD的引用与验证 700
实例445 在XML中使用XML Schema 700
实例446 验证XML是否符合Schema的描述 701
实例447 XSD文档根元素的引用 703
实例448 在XSD中使用注释 703
16.2 使用XSD简单类型定义XML元素 704
实例449 在XSD定义XML元素 704
实例450 使用xs:simpleType和xs:restriction 705
实例451 使用xs:list 706
实例452 使用xs:enumeration 708
实例453 使用xs:pattern 710
16.3 使用XSD复杂类型定义XML元素 711
实例454 使用xs:complexType和xs:sequence 711
实例455 使用xs:choice 713
实例456 使用xs:all 714
实例457 使用xs:group 716
实例458 使用xs:extension和xs:simpleContent 718
实例459 使用xs:extension和xs:complexContent 719
实例460 使用xs:restriction和xs:simpleContent 721
实例461 使用xs:restriction和xs:complexContent 723
实例462 使用xs:attributeGroup和xs:attribute 725
16.4 使用XSD的普通类型 727
实例463 在XSD中对字符进行限制 727
实例464 在XSD中对数值进行限制 728
第17章 解析XML文件 730
17.1 使用SAX读取XML 731
实例465 从文件中读取XML 731
实例466 从数据流中读取XML 732
实例467 从数据源中读取XML 733
17.2 使用SAX解析XML 734
实例468 解析XML元素名称 734
实例469 解析XML元素名称和内容 736
实例470 解析XML元素属性和属性值 738
实例471 使用VO解析XML元素 740
实例472 使用VO解析XML元素和属性 741
实例473 使用SAX验证DTD 743
17.3 使用DOM读取XML 745
实例474 从文件中读取XML 745
实例475 从数据流中读取XML 746
实例476 从数据源中读取XML 747
17.4 使用DOM解析XML 748
实例477 解析XML元素名称 748
实例478 解析XML元素名称和内容 749
实例479 解析XML元素属性和属性值 751
实例480 使用VO解析XML元素 752
实例481 使用VO解析XML元素和属性 753
17.5 使用DOM操作XML 755
实例482 创建简单的XML文件 755
实例483 创建基本的XML文件 757
实例484 使用VO创建XML文件 759
实例485 使用DOM添加XML元素 761
实例486 使用DOM修改XML元素 764
实例487 使用DOM删除XML元素 766
第6篇 操作PDF篇
第18章 操作PDF文档 770
18.1 文档和文档属性 771
实例488 创建PDF文档 771
实例489 添加PDF文档标题 772
实例490 添加PDF文档主题 773
实例491 添加PDF文档关键词 774
实例492 添加PDF文档作者 775
实例493 添加PDF文档创建者 776
实例494 添加PDF文档制作者 777
实例495 添加PDF文档创建日期 778
18.2 初始化操作 779
实例496 设置页面大小 779
实例497 横向显示页面 780
实例498 纵向显示页面 781
实例499 添加水印 782
实例500 添加页眉和页脚 783
实例501 创建新页 784
实例502 为PDF文档添加页码 785
18.3 字体与中文处理 786
实例503 设置特殊的文本字体 786
实例504 加粗字体 787
实例505 添加下划线 788
实例506 添加删除线 789
实例507 在PDF文档中显示中文 790
实例508 设置PDF文档密码 791
18.4 块、短语、段落、章节和区域 792
实例509 添加和创建块 792
实例510 设置上标和下标 793
实例511 设置文本背景颜色 794
实例512 添加和创建短语 795
实例513 添加和创建段落 796
实例514 设置段落首行缩进 797
实例515 设置段落的上下间距 798
实例516 设置段落左右缩进 799
实例517 设置段落的对齐方式 800
实例518 设置段落字体大小 801
实例519 设置段落文本颜色 802
实例520 添加章节 803
实例521 在章节中添加小节 804
实例522 在小节中添加列表 805
实例523 在小节中添加段落 807
实例524 在小节中添加表格 808
实例525 在小节中添加图片 809
18.5 读取PDF文档 810
实例526 文本文件转换为PDF文档 810
实例527 读取PDF文档 812
实例528 读取加密的PDF文档 813
实例529 编辑PDF文档 814
实例530 导入已有文档 816
实例531 导入并添加页码 817
实例532 导入并添加水印 818
实例533 导入并添加新页和内容 819
实例534 拆分PDF文档 821
实例535 合并PDF文档 822
实例536 打印PDF文档 823
……
第19章 绘制PDF图形和图像
第20章 绘制PDF表格
第21章 设置阅读器参数
Ⅷ Java项目案例分析的前言
学习语言的目的是为了开发项目,很多初学者在学习技术时很顺利,但要真正开发起项目,往往会感到迷茫和手足无措。而对于即将毕业的学生来说,即将提交的毕业设计又会让他们焦头烂额。
为了帮助读者解决这些问题,引导读者学有所用,我们编写了本书。本书精选了6个实用项目与两个毕业设计,内容涉及Java开发的主流开发技术,并以最简单通俗的方式向读者介绍如何开发软件项目。相信通过本书的学习,读者会在Java开发的道路上奠定更加坚实的基础,同时也为正在忙于毕业设计的同学提供指导。
如果读者在学习过程中遇到任何问题,创作团队会通过QQ、论坛等方式为读者提供解答,真正排除读者在Java学习中遇到的各种障碍。
本书内容
本书共8章,包括6个实用项目和两个毕业设计。实用项目包括超市管理系统、物资管理系统、网上商城系统、英汉双语词典、学生成绩管理系统、彩票预测系统;毕业设计包括进销存管理系统和图书馆管理系统。笔者注重每个项目界面的美观,下面给出几个项目的运行效果图。
本书特色
* 技术丰富。本书涉及技术广泛,而且都是读者较为关心的内容,如Hibernate框架开发、网络开发、CVS团队开发等。
* 横向连接。属于Java系列丛书的一部分,读者经过基础、实例等内容学习后,再学习本书可以在巩固基础的同时,真正达到学以致用的效果。
* 讲解到位。剖析每种技术最有价值的部分,绝不拖泥带水。
* 赠送所有项目源代码。书中所有项目均提供源代码,用户在开发中可以快速借鉴或应用。
* 提供72集(节)视频录像。本书提供了72集(节)的视频录像,读者可以边看边学,快速提高。
本书配套资源
本书提供了内容丰富的配套资源,包括自学视频、源程序、素材,以及模块库、案例库、题库、素材库等多项辅助内容,读者朋友可以通过如下方式获取。
第1种方式:
(1)登录清华大学出版社的网站,在网页右上角的搜索文本框中输入本书书名(注意区分大小写和留出空格),或者输入本书关键字,或者输入本书ISBN号(注意去掉ISBN号间隔线“-”),单击“搜索”按钮。
(2)找到本书后单击超链接,在该书的网页下侧单击“网络资源”超链接,即可下载。
第2种方式:
访问本书的新浪微博Javamrbook,找到配套资源的链接地址进行下载。
配套资源目录如下图所示。
本书约定
* 项目使用方法
用户在学习本书的过程中,可以从配套资源中复制程序,去掉其只读属性。有些项目需要使用相应的数据库或第三方资源,此类程序在使用前需要进行相应配置,详细使用方式可参考本书配套资源。此外,如果用户直接将本书内容用于商业领域,由此产生的不良后果由用户自己承担。
* 部分项目只给出关键代码
由于篇幅限制,书中有些模块只给出了关键代码,完整代码可参见配套资源对应程序。
读者人群
本书非常适合以下读者阅读:
* 从事Java编程行业的开发人员
* 具有一定语言基础,想进一步提高技能的人员
* 大中专院校的老师和学生
* 即将走上工作岗位的大学毕业生
* 相关培训机构的老师和学员
* Java编程爱好者
Ⅸ java常用的几种线程池实例讲解
下面给你介绍4种线程池:
1、newCachedThreadPool:
底层:返回ThreadPoolExecutor实例,corePoolSize为0;maximumPoolSize为Integer.MAX_VALUE;keepAliveTime为60L;unit为TimeUnit.SECONDS;workQueue为SynchronousQueue(同步队列)
通俗:当有新任务到来,则插入到SynchronousQueue中,由于SynchronousQueue是同步队列,因此会在池中寻找可用线程来执行,若有可以线程则执行,若没有可用线程则创建一个线程来执行该任务;若池中线程空闲时间超过指定大小,则该线程会被销毁。
适用:执行很多短期异步的小程序或者负载较轻的服务器
2、newFixedThreadPool:
底层:返回ThreadPoolExecutor实例,接收参数为所设定线程数量nThread,corePoolSize为nThread,maximumPoolSize为nThread;keepAliveTime为0L(不限时);unit为:TimeUnit.MILLISECONDS;WorkQueue为:new LinkedBlockingQueue<Runnable>()无解阻塞队列
通俗:创建可容纳固定数量线程的池子,每隔线程的存活时间是无限的,当池子满了就不在添加线程了;如果池中的所有线程均在繁忙状态,对于新任务会进入阻塞队列中(无界的阻塞队列)
适用:执行长期的任务,性能好很多
3、newSingleThreadExecutor
底层:包装的ThreadPoolExecutor实例,corePoolSize为1;maximumPoolSize为1;keepAliveTime为0L;unit为:TimeUnit.MILLISECONDS;workQueue为:new LinkedBlockingQueue<Runnable>()无解阻塞队列
通俗:创建只有一个线程的线程池,且线程的存活时间是无限的;当该线程正繁忙时,对于新任务会进入阻塞队列中(无界的阻塞队列)
适用:一个任务一个任务执行的场景
4、NewScheledThreadPool:
底层:创建ScheledThreadPoolExecutor实例,corePoolSize为传递来的参数,maximumPoolSize为Integer.MAX_VALUE;keepAliveTime为0;unit为:TimeUnit.NANOSECONDS;workQueue为:new DelayedWorkQueue()一个按超时时间升序排序的队列
通俗:创建一个固定大小的线程池,线程池内线程存活时间无限制,线程池可以支持定时及周期性任务执行,如果所有线程均处于繁忙状态,对于新任务会进入DelayedWorkQueue队列中,这是一种按照超时时间排序的队列结构
适用:周期性执行任务的场景
最后给你说一下线程池任务执行流程:
当线程池小于corePoolSize时,新提交任务将创建一个新线程执行任务,即使此时线程池中存在空闲线程。
当线程池达到corePoolSize时,新提交任务将被放入workQueue中,等待线程池中任务调度执行
当workQueue已满,且maximumPoolSize>corePoolSize时,新提交任务会创建新线程执行任务
当提交任务数超过maximumPoolSize时,新提交任务由RejectedExecutionHandler处理
当线程池中超过corePoolSize线程,空闲时间达到keepAliveTime时,关闭空闲线程
当设置allowCoreThreadTimeOut(true)时,线程池中corePoolSize线程空闲时间达到keepAliveTime也将关闭