11 2012 档案
摘要:volatile,本意是不稳定的,易挥发的,也就是说,用它修饰的变量时可变的,那么这个关键字有什么用呢?在多线程环境下,线程可以将线程间共享的变量保存在本地内存(如寄存器)中,而不是从内存中读取,这就可能会引发不一致的问题,另一个进程可能在此线程运行期间改变了变量的值,而此线程并没有看到变化。而volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入
阅读全文
摘要:实现对xml文件的增删查等操作:package rowsy.dao;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import rowsy.bean.Student;import rowsy.exception.StudentNotExistException;import rowsy.utils.XmlUtils;public class StudentDao { public void add(Student s) { t.
阅读全文
摘要:DTD文档可以单独一个文件,也可以在xml文档内部内部声明内部声明例子:<?xml version="1.0"?><!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>]><note> <to>George
阅读全文
摘要:xml的用途: 1.表示关系的数据 2.用于配置文件语法: 文档声明 <? xml version="1.0" ?> <? xml version="1.0" encoding="utf-8"?> <? xml version="1.0" encoding="utf-8"standalone="yes" ?> standalone属性表示是否是独立文档,也就是是否依赖于其他文档元素: 就是标签,可以包含标签体,也可以不包含,标签可以嵌套,不
阅读全文
摘要:windows ==> Preferences ==> Java ==> Editor ==> Template ==> new
阅读全文
摘要:import java.sql.*;import javax.sql.*;public final class JdbcUtil { /** * @param args */ private static String url = "jdbc:mysql://localhost:3306/jdbc"; // jdbc:mysql:///jdbc 本地默认端口可以省略 private static String user = "root"; private static String password = "123456"; priva
阅读全文
摘要:刚学jdbc,来个最简单的吧,代码如下: 1 import java.sql.*; 2 import javax.sql.*; 3 4 public class TestJDBC { 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) throws Exception{ 9 // TODO Auto-generated method stub10 test();11 12 }13 14 public s...
阅读全文
摘要:http请求消息:一个请求行若干消息头实体内容http响应消息:一个状态行若干消息头实体内容注意: 消息头和实体内容之间有一个空行 消息头大小写不敏感 消息头冒号后有一个空格 get请求不包含实体内容几个消息头:Connection 用于指定处理完本次请求之后,客户端与服务器是否继续保持连接,设置值可以为Keep-Alive和close,http1.1默认为Keep-AliveAccept-Language 用于指出客户端希望服务器返回的文档所使用的国家语言,可以指定多个一逗号分隔的国家语言Content-Length 用于表示实体内容的长度(字节)Range 用于指定服务器只需返回文档中的部
阅读全文
摘要:客户端代码如下:import java.net.*;import java.io.*;public class ObjectClient { public static void main(String[] args) { try { Socket s = new Socket("127.0.0.1", 8001); // 实际编程不要写死 InputStream is = s.getInputStream(); ObjectInputStream ois = new ObjectInputStream(is); Student stu = (Student)oi...
阅读全文
摘要:检测:用netstat -na命令可以查看哪些端口正在被监听解决:用一个配置参数指定tcp程序所使用的端口号
阅读全文
摘要:程序 ==> 控制面板 ==> 程序和功能 ==> 打开或关闭Windows功能点选telnet客户端
阅读全文
摘要:tcp服务器代码如下:import java.net.*;public class ReserveServer { public static void main(String[] args) { // 用户可自行指定端口号 try { ServerSocket ss; if (args.length < 1) { ss = new ServerSocket(8888); } else { ss = new ServerSocket(Integer.parseInt(args[0])); } while (true) { Socket s =...
阅读全文
摘要:发送者类如下:import java.net.*;public class UdpSender { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { DatagramSocket ds = new DatagramSocket(); String info = "hello snooker 中国"; ds.send(new DatagramPacket(info.getBytes(), info.getBytes(...
阅读全文
摘要:import java.io.*;public class Serialization { public static void main(String [] args) { Student stu1 = new Student(1, "Ronnie", 37, "snooker"); Student stu2 = new Student(2, "John", 37, "snooker"); try { ObjectOutputStream os = new ObjectOutputStream(new FileO
阅读全文
摘要:import java.io.*;public class DataStreamTest { public static void main(String [] args) { try { FileOutputStream fos = new FileOutputStream("count.txt"); BufferedOutputStream bos = new BufferedOutputStream(fos); DataOutputStream dos = new DataOutputStream(bos); dos.writeUTF("ab中国"
阅读全文
摘要:72、EJB的角色和三个对象 一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者(Enterprise Bean Provider) 、应用组合者(Application Assembler)、部署者(Deployer)、EJB 服务器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系统管理员(System Administrator)三个对象是Remote(Local)接口、Ho
阅读全文
摘要:ByteArrayInputStream和ByteArrayOutputStream,用于以IO流的方式来完成对字节数组内容的读写,来支持类似内存虚拟文件或者内存映射文件的功能实例:import java.io.*;public class ByteArrayStreamTest { public static void main(String [] args) { String str = "abcdef"; ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes()); ByteArrayOutpu
阅读全文
摘要:PipedOutputStream和PipedInputStream用于在应用程序中创建管道通信实例:import java.io.*;public class PipedStreamTest { public static void main(String [] args) { Sender sender = new Sender(); Receiver receiver = new Receiver(); PipedOutputStream outStream = sender.getOutStream(); PipedInputStream inStream = receiv...
阅读全文
摘要:Reader和Writer是所有字符流类的抽象基类,用于简化对字符串的输入输出编程,即用于读写文本数据实例:import java.io.*;public class FileReaderWriterTest { public static void main(String [] args) { try { FileWriter writer = new FileWriter("hello.txt"); writer.write("love_snooker"); writer.close(); FileReader reader = new FileRe
阅读全文
摘要:I/O类包括节点流类和包装流类FileOutputStream和FileInputStream创建磁盘文件的输入输出流对象创建FileInputStream实例对象时,指定的文件应当是存在和可读的,创建FileOutputStream实例对象时,如果指定的文件已经存在,这个文件中的原来内容将被清除创建FileOutputStream实例对象时,可以指定还不存在的文件名,不能指定一个已被其他程序打开的文件实例:import java.io.*;public class FileStreamTest { public static void main(String [] args) { try .
阅读全文
摘要:RandomAccessFile类 只能访问文件,不能操作其他io设备 支持随机访问 在读写等长记录文件有优势实例:import java.io.*;class Employee { private String name; private int age; public static final int LEN = 8; String getName() { return name; } int getAge() { return age; } Employee(String name, int age) { if (name.length() > LEN) { // 为了构造等...
阅读全文
摘要:import java.io.*;import java.util.*;public class FileTest { public static void main(String [] args) { File f = new File("1.txt"); if (f.exists()) { f.delete(); } else { try { f.createNewFile(); } catch(IOException e) { e.printStackTrace(); } } System.out.println("File name " +...
阅读全文
摘要:一:现代社会,人们都生活在两种规范下,市场规范和社会规范,市场规范靠市场的力量来约束,也就是钱的力量,社会规范靠道德和人性来约束。当你求人办事之后请吃饭表示感谢时,是在社会规范下,但是当你付钱时,就到了市场规范下。本来可以增进友谊的一件事情,提到了钱便成了交易。就像你的亲戚请你吃饭,吃完饭你问这顿饭多少钱,多半会不理你,以后吃饭也不一定会叫你了,相反,如果吃饭时带去一些礼品,比如一瓶酒,那么就是另一番景象了。记住,社会规范很脆弱,当市场规范和社会规范相互碰撞时,社会规范就会退出,同时,社会规范很难重建,所以,不要做傻事,不要用钱破坏感情。二:人们很难在清醒状态下预测自己在兴奋状态下时的心理状态
阅读全文
摘要:1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、HtmlConverter、jar、 java、javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java实际上还很不了解。3、工具:必须至少熟练使用一种IDE的开发工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Worksh
阅读全文
摘要:职场人士一天中至少1/3时间在办公室度过,如果不注意细节,很可能“伤人于无形”,使同事关系大打折扣。因此,在职场细节中要注意这5件事不能犯。不参与讨论工作累了,大家可能会谈些琐事,能缓解压力、交流感情。如果你从来不参与这种讨论,时间一长,工作上的事情大家也想不起跟你说了。拒绝零食带点小吃、特产相互分享,或者获奖了请客,是表达友好的重要途径。要是因为“正忙着”、“不想欠人情”等拒人千里,或表示不稀罕,人家也会觉得你曲高和寡,难以相处。行踪诡秘不要老在单位“玩失踪”,告诉领导和同事你去哪里是尊重,会让彼此产生信任和责任感,还能帮你处理急事。不分享好消息知道了一个好消息,认为大家可能都知道了就不说,
阅读全文
摘要:<jsp:include>标准动作可以在一个页面中包含另一个页面,例如:<html> <body> <jsp:include page="Header.jsp" /> </body></html>include指令也可以实现这种功能,例如:<html> <body> <%@ include file="Header.jsp" %> </body></html>但两者原理有所不同,<jsp:include>标准动作
阅读全文
摘要:Java程序员高级特性 反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入核心编程 IO、多线程、实体类、集合类、正则表达式、XML和属性文件图形编程 AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace网络编程 Applet、Socket/TCP/UDP、NIO、RMI、CORBAJava语法基础 类、抽象类、接口、最终类、静态类、匿名类、内部类、异常类、编码规范Java开发环境 JDK、JVM、Eclipse、LinuxJavaEE初级软件工程师JSF框架开发技术 配置文件(页面导航、后台Bean)、JSF组件库(JSFEL
阅读全文
摘要:与bean相关的标准动作:<jsp:useBean id="person" class="foo.Person" scope="request" /><jsp:getProperty name="person" property="name" /><jsp:setProperty name="person" property="name" value="Fred" />jsp:useBean动作在没有
阅读全文
摘要:Java中,通常有两种遍历HashMap的方法,如下:import java.util.*;public class MapTest { static HashMap<String, Integer> hashMap = new HashMap<String, Integer>(); public static void main(String [] args) { hashMap.put("one", 1); hashMap.put("two", 2); hashMap.put("three", 3); ha
阅读全文
摘要:一个jsp页面最后变成一个servlet三个指令: page,include,taglib指令表示方式: <%@ page import="foo.*" %> import是page指令的一个属性五种种jsp元素: scriptlet:<% ... %> 指令:<%@ ... %> 表达式:<%= ... %> 声明:<%! ... %> 动作:<jsp:include page="wickedFooter.jsp" />表达式“=”后的内容会当做参数传递给打印语句,例如<%=
阅读全文
摘要:场景:你想知道一个web应用上下文中是否增加、删除或替换了一个属性监听者接口:javax.servlet.ServletContextAttributeListener attributeAdded attributeRemoved attributeReplaced事件类型:ServletContextAttributeEvent场景:你想知道有多少个并发用户,也就是说,你想跟踪活动的会话监听者接口:javax.servlet.http.HttpSessionListener sessionCreated sessionDestroyed事件类型:HttpSessionEvent场景:每次请
阅读全文
摘要:HttpSession对象可以保存同一个客户多个请求的会话状态容器如何知道客户是谁? 通过唯一的会话ID怎样得到会话?HttpSession session = request.getSession();如果找到与该请求匹配的会话,返回会话,如果没有,创建一个新会话客户和容器如何交换会话ID信息? 通过cookie,如果客户端cookie被禁用,则采用URL重写怎样知道会话是已经存在,还是刚刚创建?HttpSession session = request.getSession();
if (session.isNew) { // is a new session
}如果只想要一个...
阅读全文
摘要:http请求关键要素: 1.http方法(get,post)等 2.请求URL 3.参数http响应关键要素: 1.状态码 2.内容类型(MIME类型) 3.内容用post不用get的理由: 1.get携带数据量有限 2.get直接将查询串加到url后,安全性差 3.post不能被客户建立书签get是幂等操作,post不是幂等操作。servlet程序框架:import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class MyServlet extends HttpServlet { public v
阅读全文
摘要:OO原则:(未完。。。) 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为交互对象之间的松耦合设计而努力 对扩展开放,对修改关闭 依赖抽象,不要依赖具体类 最少知道原则 别找我,我会找你(好莱坞原则),换句话说,高层组件对待低层组件的方式是“别调用我们,我们会调用你”OO模式: 模版方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。要点: ·“模版方法”定义了算法的步骤,把这些步骤的实现延迟到子类 ·模版方法模式为我们提供了一种代码复用的重要技巧 ·模版方法的抽
阅读全文
摘要:OO原则:(未完。。。) 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为交互对象之间的松耦合设计而努力 对扩展开放,对修改关闭 依赖抽象,不要依赖具体类 最少知道原则OO模式: 适配器模式:将一个类的接口,转换成客户期望的另一个接口,适配器让原本不兼容的类可以合作无间 外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用要点: ·当需要使用一个现有的类而其接口并不符合你的需要时,就使用适配器 ·当需要简化并统一一个接口时,使用外观 ·适配器改变接口以符合客户的期望 ·外观将客户从一个复杂的
阅读全文
摘要:OO原则:(未完。。。) 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为交互对象之间的松耦合设计而努力 对扩展开放,对修改关闭 依赖抽象,不要依赖具体类OO模式: 单件模式:确保只有一个实例,并提供全局访问点。要点:·确保一个雷最多只有一个实例 ·提供这个实例的全局访问点 ·java中实现一个单件模式需要一个private constructor,一个static function,一个static instance varible ·如果使用多个类加载器,可能导致多个单件失效而产生多个实例注意: 单件模式在多线程情况下容易出现问题,可能
阅读全文
摘要:进化型设计本文Martin Fowler讨论了计划型设计和进化型设计的区别,揭示了着眼于解决表象问题可以使开发者发现本质问题,并主张好的设计工作不会降低工作效率。计划型设计和进化型设计Bill Venners:在你的论文《设计是否已死》(Is Design Dead)一文中,谈到了计划型设计。那么什么是计划型设计?Martin Fowler:我将设计区分为计划型设计和进化型设计。当开发者着手实施一个软件时,他首先需要做设计,然后再按照这个设计进行编 码实现软件,这就是我所说的计划型设计。计划型设计可能借助 UML;或者把整个系统分为若干子系统,定义这些子系统间的接口。在计划型设计中,在设计和代
阅读全文
摘要:110、J2EE是什么? J2EE 是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型 (enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。111、UML方面 标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图.
阅读全文
摘要:94、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)快速排序的伪代码。/ /使用快速排序方法对a[ 0 :n- 1 ]排序从a[ 0 :n- 1 ]中选择一个元素作为middle,该元素为支点把余下的元素分割为两段left 和right,使得left中的元素都小于等于支点,而right 中的元素都大于等于支点递归地使用快速排序方法对left 进行排序递归地使用快速排序方法对right 进行排序所得结果为left+middle+ri
阅读全文

浙公网安备 33010602011771号