![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA高级
文章平均质量分 77
y_keven
点线面
展开
-
心得2--线程回顾之加深版--同步锁详解
这节与大家分析一下线程的高深部分,多线程的锁问题及同步问题,关键字:synchronized。下面从基础概念介绍起,后面与大家分享下两种单例模式:饿汉式和懒汉式中运行线程同步的情况。1.互斥锁µ 每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任意时刻,只能有一个线程访问该对象。µ Java对象默认是可以被多个线程共用的,只是在需要时才启动“互斥锁”机制,成为专用原创 2012-09-04 17:27:02 · 913 阅读 · 0 评论 -
心得3--由售票系统中的抢票机制解说同步线程及死锁案例分析
一. 这里跟大家分享一下售票系统,这里是一个抢票系统,讨论一下线程同步的作用(关键字synchronized),第一种是正确的程序,下面两种分别是两种不同的错误。1.运用synchronized同步做的售票程序packagecom.javaEE.code.synchronizedDemo;classSellTicket{ public static int tickets =原创 2012-09-04 17:53:21 · 2304 阅读 · 0 评论 -
心得4--线程同步通讯-生产者与销售者
1. 分析:(生产者-消费者问题是多线程同步处理的典型问题)有一块生产者和消费者共享的有界缓冲区,生产者往缓冲区放入产品,消费者从缓冲区取走产品,这个过程可以无休止的执行,不能因缓冲区满生产者放不进产品而终止,也不能因缓冲区空消费者无产品可取而终止。2. 解决生产者消费者问题的方法一种是采用某种机制保持生产者和消费者之间的同步一种是在生产者和消费者之间建立一个管道线程原创 2012-09-05 14:27:21 · 927 阅读 · 0 评论 -
心得8--JDBC回顾-存储过程与设置主键分析
一: 存储过程1. mysql 命令回顾:创建存储过程代码(纯岁的插入): delimiter @@ //占位符,为了不让程序默认认为是‘;’结束create procedure mypro(过程名)(in unamevarchar,in upassword char)begininsert into (name,password)values(uname,原创 2012-09-10 15:55:37 · 963 阅读 · 0 评论 -
心得7--JDBC回顾-批处理案例解说
1. 业务场景:当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。l 实现批处理有两种方式,第一种方式:• Statement.addBatch(sql) list• 优点:可以向数据库发送多条不同的SQL语句。• 缺点:SQL语句没有预编译。当向数据库发送多条语句相同,原创 2012-09-10 15:54:50 · 929 阅读 · 0 评论 -
心得12--网络编程3-Socket服务
1.ServerSocket(服务器端):编写TCP网络服务(面向连接)程序,首先要用到java.net.ServerSocket类用以创建服务器Socketµ 构造方法:ü ServerSocket(int port):创建绑定到特定端口的服务器套接字ü ServerSocket(int port, intbacklog):利用指定的backlog(服务器忙时保原创 2012-09-12 15:42:05 · 879 阅读 · 0 评论 -
心得14--网络编程5-Tcp文件上传与输出
12.0.0.1代表本机IP。不要有中文路径,但是可以有中文文件名。中文路径会报错客户端:packagecom.TcpFile;importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava原创 2012-09-13 16:38:25 · 1313 阅读 · 0 评论 -
心得16--网络编程7-Url-解密IE的神秘面纱
1. URL(Uniform Resource Locator)类代表统一资源定位器,统一资源定位器是指互联网“资源”的名称。资源可以是简单的文件或目录,也可以是对跟为复杂的对象的引用,例如:对数据库或搜索引擎的查询。通常URL可以由协议名、主机、端口号和资源组成。URL的格式为“protocol://host:port/resourceName”。例如:http://ww.csdn.index原创 2012-09-14 13:45:45 · 1408 阅读 · 0 评论 -
心得21--JDK新特性5-Apache开发的内省API
1. Apache开发的内省方式 Sun公司的内省API过于繁琐,所以Apache组织结合很多实际开发中的应用场景开发了一套简单、易用的API操作Bean的属性——BeanUtilsl Beanutils工具包的常用类:• BeanUtils• PropertyUtils• ConvertUtils.regsiter(Con原创 2012-09-18 19:06:16 · 2295 阅读 · 0 评论 -
心得25--JDK新特性9-泛型1-加深介绍
1. 泛型思想 泛型是JDK1.5后出现的一个安全机制.通过来指定容器中元素的类型 JDK5以前,对象保存到集合中就会失去其特性,取出时通常要程序员手工进行类型的强制转换,这样不可避免就会引发程序的一些安全性问题。例如:ArrayList list = newArrayList();list.add("abc");Integer num = (Inte原创 2012-09-20 15:41:21 · 3674 阅读 · 0 评论 -
心得27--JDK新特性11-注解
1. JDK5.0以上的版本引入了一项新特性:Annotation,中文翻译成注解,是用来为程序元素(类、方法、成员变量等)设置说明和解释的一种元数据,Java开发和部署工具可以读取这些注解,并以某种形式处理这些注解。 它可以添加到程序的任何元素(包括声明、类型声明、构造方法、方法、成员变量等)上,用来设置一些说明和解释,Java开发和部署工具可以读取这些注释,并以某种形式处理这些注释。原创 2012-09-21 14:19:27 · 3135 阅读 · 0 评论 -
java的垃圾回收机制详解
1. 垃圾回收 垃圾回收是Java程序设计中内存管理的核心概念,JVM的内存管理机制被称为垃圾回收机制。 一个对象创建后被放置在JVM的堆内存中,当永远不再引用这个对象时,它将被JVM在堆内存中回收。被创建的对象不能再生,同时也没有办法通过程序语句释放它们。即当对象在JVM运行空间中无法通过根集合到达(找到)时,这个对象被称为垃圾对象。根集合是由类中的静态引用域与本地引用原创 2012-11-01 15:51:44 · 2572 阅读 · 2 评论 -
J2EE中的技术规范
J2EE中的技术规范 J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):1.JDBC(Java Database Connectivity): JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样原创 2012-10-15 21:59:42 · 1327 阅读 · 0 评论 -
心得26--JDK新特性10-泛型2-自定义泛型
1. 自定义泛型 Java程序中的普通方法、构造方法和静态方法中都可以使用泛型。方法使用泛形前,必须对泛形进行声明,语法:,T可以是任意字母,但通常必须要大写。通常需放在方法的返回值声明之前。例如:publicstatic void method(T t); 注意:只有对象类型才能作为泛型方法的实际参数。在泛型中可以同时有多个类型。:一个数组交换的例子:pa原创 2012-09-20 15:50:08 · 3486 阅读 · 0 评论 -
心得23--JDK新特性7-反射2-Filed、Construction类(构造方法)
1. Constructor类提供了如下方法,用于创建类的对象: public Object newInstance(Object...initargs) initargs用于指定构造函数接收的参数多学一招:sun公司为简化开发人员创建对象,它在class对象中也提供了一个newInstance方法,用于创建类的对象。这样开发人员可以避免每次都需要去反射Constr原创 2012-09-19 17:36:20 · 3033 阅读 · 0 评论 -
心得20--JDK新特性4-框架开发之内省
1. 内省的作用: 开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性。内省的过程就是访问javabean的过程。有时候并不知道javabean中的代码,比如做框架开发时,这时候就要用到内省了。l 内省访问JavaBean属性的两种方式:•原创 2012-09-18 19:04:39 · 2151 阅读 · 0 评论 -
心得11--网络编程2-QQ、飞秋等聊天室部分网络编程
聊天室前奏:先来些辅助工作,通过四个案例慢慢深入了解聊天室的内幕,下期与大家分享聊天室的编写1.案例一:发送端packagecom.packet;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;publicclass SendDemo { p原创 2012-09-11 17:53:37 · 2742 阅读 · 0 评论 -
心得10--网络编程1
1. 关于网络编程的一些概念网络体系结构:国际标准化组织ISO于l978年提出“开放系统互连参考模型”,即著名的OSI(Open System Interconnection)模型。该模型把计算机网络分成物理层、数据链路层、网络层、传输层、会话层、表示层、应用层等七层。通信协议(通信协议):计算机网络中实现通信必须有一些约定;对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。T原创 2012-09-11 17:39:55 · 990 阅读 · 0 评论 -
心得5--JDBC回顾-主讲将驱动配置方法抽离成单独类
1. 基础知识回顾(1)JDBC全称为:Java DataBase Connectivity(java数据库连接),它主要由接口组成。(2)组成JDBC的2个包: java.sql、javax.sql开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)。(3)编写程序,在程序中加载数据库驱动 Class.forName(“com.my原创 2012-09-06 19:15:58 · 1413 阅读 · 0 评论 -
斐波那契数列的神奇
近期编写斐波那契数列程序,在网上无意间发现了这些,与校友们分享一下!!!! 斐波那契数列中的斐波那契数会经常出现在我们的眼前——比如松果、凤梨、树叶的排列、某些花朵的花瓣数、黄金矩形、黄金分割、等角螺线等,有时也可能是我们对斐波那契额数过于热衷,把原来只是巧合的东西强行划分为斐波那契数。比如钢琴上白键的8,黑键上的5都是斐波那契数,应该把它看做巧合还是规律呢? 随着数列项数的增加,原创 2011-12-08 17:48:25 · 2145 阅读 · 0 评论 -
代码--模拟购买彩票系统
package csdn.lesson2;public class TestTickets { public int tickets = 10; public synchronized void action(String name){ System.out.println(name+"抢到了第"+tickets+"号票"); tickets--;原创 2012-05-22 21:41:25 · 2618 阅读 · 0 评论 -
一个非常的简单的图片copy实例,虽然简单却很实用
package com.practice4;import java.io.*;public class TestCopy { public static void main(String[] args)throws IOException { FileInputStream fis=new FileInputStream("F:\\My Pictures\\可爱小孩\\2.gi原创 2012-05-17 18:41:37 · 935 阅读 · 0 评论 -
心得13--网络编程4-TCP协议案例分析
一:简单案例:1. 客户端packagecom.Tcp;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.Socket;importjava.net.UnknownHostException;public classClien原创 2012-09-12 15:39:51 · 1100 阅读 · 0 评论 -
心得9--JDBC回顾-事务案例分析
1. 基础知识回顾:事务的概念:事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功数据库开启事务命令:start transaction 开启事务Rollback 回滚事务;Commit 提交事务2.创建JDBC的事务主要分以下步骤1).设置事务的提交方式为非自动提交: conn.setAutoCommit(false);2).原创 2012-09-10 15:56:36 · 909 阅读 · 0 评论 -
细说正则表达式
本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :)别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几转载 2012-09-05 15:04:09 · 707 阅读 · 0 评论 -
心得24--JDK新特性8-反射3-Method方法.doc
1. Field对象提供了如下方法,用于设置、获取对象属性的值:public void set(Object obj,Object value)public Object get(Object obj) 案例分析:packagecom.java.reflect;importjava.lang.reflect.Field;importorg.junit.Test;p原创 2012-09-19 17:37:02 · 2605 阅读 · 0 评论 -
心得22--JDK新特性6-反射1-反射入门及Class类
1.反射简介反射可以理解为在运行时获取对象类型信息的操作。反射(Reflection)的概念是由Smith1982年首次提出来的,主要是程序可以访问、检测和修改其自身状态或行为的一种能力。反射是java语言的特征之一,它允许动态地发现和绑定类、方法、字段,以及所有其他的由语言所产生的元素。反射做的不仅仅是简单的列举类、字段以及方法,通过反射在运行时还能完成创建实例、调用方法以及访问字段的工原创 2012-09-19 17:35:37 · 2423 阅读 · 0 评论 -
心得19--JDK新特性-可变参数、枚举
1. 可变参数从 JDK 1.5 开始, Java 允许定义形参长度可变的参数,从而允许为方法指定数量不确定的形参,若在定义方法时,在最后一个形参的类型后增加三点(…, ...位于变量类型和变量名之间,前后有无空格都可以)则表明该形参可以接受多个参数值, 多个参数值被当成数组传入可变形参只能处于形参列表的最后, 所以一个方法最多只能有一个长度可变的形参;调用包含一个可变形参的方法时,可以为原创 2012-09-17 16:33:43 · 3919 阅读 · 0 评论 -
心得18--JDK新特性-静态导入、自动封装与拆装、增强for循环
1. “JDK 5.0”的一个重要主题就是通过新增一些特性来简化开发,这些特性包括:• 静态导入• 自动装包/拆包• for-each循环• 可变参数• 枚举• 泛型• 元数据静态导入语法用于导入指定类的某个静态属性值(方法)或全部静态属性值(方法)。语法:Import static 包名.类名原创 2012-09-17 16:32:59 · 2749 阅读 · 0 评论 -
心得--junit测试框架.doc
1. 与Android中的测试操作相同,但是所用代码不同:Android中,要在清单文件中加入 //把单元测试的框架的依赖库引入到项目中。注意:该段代码是添加在里面的,而不是中。 .... android:targetPackage="cn.itcast.action"//这个值必须与当前包名一样。 android:label="原创 2012-09-16 11:47:27 · 1088 阅读 · 0 评论 -
心得15--网络编程6-图片等二进制文件的上传与输出
1. 先说一个简单的案例客户端:package com.TcpJpg;importjava.io.FileInputStream;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.Socket;publicclass JpgClient { /**原创 2012-09-13 16:39:03 · 1737 阅读 · 0 评论 -
心得6--JDBC回顾-如何处理大文本和图像声音案例分析
1. 基础知识回顾基本概念:大数据也称之为LOB(Large Objects),LOB又分为:clob(用于存储大文本,如:Text)和blob(blob用于存储二进制数据,例如图像、声音、二进制文等)对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和blob分别又分为:• TINYTEXT、TEXT、MEDIUMTEXT和LO原创 2012-09-08 14:56:39 · 1225 阅读 · 0 评论 -
代码--小时我们痴迷的候小游戏(猜数字)
package creat;import java.util.*;import java.io.*;public class GuessNumber { private int ranNum; public GuessNumber(){ Random r = new Random(); ranNum = r.nextInt(100)+1;原创 2012-05-17 18:34:53 · 939 阅读 · 0 评论 -
心得4--apache公司开发的CURD模版介绍及案例分析
1. 简介commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。API介绍:org.apache.commons.dbutils.QueryRunner --BDMan原创 2012-11-28 14:55:51 · 1436 阅读 · 3 评论 -
心得2--下载资源介绍,案例分析细节
1. Web应用中实现文件下载的两种方式超链接直接指向下载资源,程序实现下载需设置两个响应头:设置Content-Type 的值为:application/x-msdownload。Web 服务器需要告诉浏览器其所输出的内容的类型不是普通的文本文件或 HTML 文件,而是一个要保存到本地的下载文件。Web 服务器希望浏览器不直接处理相应的实体内容,而是由用户选择将相应的实体内容保存到原创 2012-11-30 16:38:40 · 1453 阅读 · 0 评论 -
心得1--上传资源介绍,案例分析细节
1.文件上传概述l 实现web开发中的文件上传功能,需完成如下二步操作:• 在web页面中添加上传输入项• 在servlet中读取上传文件的数据,并保存到本地硬盘中。l 如何在web页面中添加上传输入项?• 标签用于在web页面中添加文件上传输入项,设置文件上传输入项时须注意:• 必须要设置input输入项的n原创 2012-11-29 19:28:52 · 2519 阅读 · 0 评论 -
Java虚拟机学习分享
来自论坛分享最近主要在学习JVM相关知识,-知识主要来源《深入理解JAVA虚拟机》,深有感触,结合自己的理解,整理出一些经验,由于篇幅较长,就把链接帖出来,希望对大家有所帮助:Java虚拟机学习 - 体系结构 内存模型Java虚拟机学习 - 对象访问Java虚拟机学习 - 垃圾收集算法Java虚拟机学习 - 垃圾收集器Java虚拟机学习 - 对象内存分配转载 2012-12-02 19:15:59 · 845 阅读 · 0 评论 -
心得--CVS简介
1. 为什么要学习CVS 项目开发靠的是一个团队的能力,很少有大中型项目是由个人完成的。对于团队开发来讲---能控制每个人的分工和权限,可以让多个人同时编辑同一份代码,并由程序来提醒两次修改中存在的冲突,可以查看某一处改动是谁做的---类似这样的需求就显得尤为重要。这也是学习CVS的缘由,它可以很好的解决上述问题。现今的大多数应用程序是由多人组成的团队开发的。即使只涉及几个开发人原创 2012-12-06 17:44:46 · 1243 阅读 · 0 评论 -
在MyEclipse中使用版本控制系统CVS
项目的版本控制对于团队开发是极端重要的,对于个人开发者也是项目复杂化时不可缺少的工具。 本文介绍如何在Eclipse中使用版本控制系统CVS。首先,我们将简要讨论一下团队代码开发的思想,然后简要讲述CVS系统的背景及Windows平台下CVS服务器的安装和设置。接下来,针对Eclipse,详细讲解了使用CVS进行团队开发时的开发流程以及在Eclipse中具体使用的重要操作方法。现今的原创 2012-12-06 12:34:44 · 2747 阅读 · 0 评论 -
MyEclipse优化1--光标乱跳、卡死、启动加速、自动拼全、检查拼写
注:笔者总结了一个多小时,请尊重别人的劳动成果,转载请指明:http://blog.csdn.net/tianyazaiheruan1.在MyEclipse中敲代码的时候尤其写Jsp时光标总是跳来跳去 用eclipse或myEclipse开发工具时,相信有很多人都碰到过这样的问题:在MyEclipse中敲代码的时候尤其写Jsp时,老是会有这种情况,正写着代码,突然光标跳到别的地原创 2012-12-19 20:34:34 · 3030 阅读 · 0 评论