一些关于java的笔记
java I/O 原理 java把不同数据与程序间的数据传输都抽象为了流 即Stream Input Output Data Souce 数据源 Data Sink 数据宿 Node Stream 节点流 直接连接到数据源的流 处理流 是 对 一个 已经存在流的连接和封装 并不是直接连接的数据源 文件--FileStream--BufferedReader |-Read() |-ReadLine() outStream flush() 清空缓冲区,将缓冲强制输出
Reader java.io.Reader是所有字符输入流类型的父类,声明了用于读取字符流的方法 Writer 所有字符输出流类型共同的父类 write(char[] chuf)把字符写入到对象关联的数据源
FileReader input = new FileReader("test.java") BufferedReader br = new BufferedReader(input)
FileWriter output = new FileWriter("temp.txt") BufferedWriter bw = new BufferedWriter(output)
String s = br.readLine() 读入一行,不含换行符号 while(s!=null) { bw.write(s) bw.newLine(); 加入一个换行符合 s = br.readLine() }
java 表达式子
-+ ` 11111111111111111111111111111111`C#枚举 枚举类型是一种独特的值类型,用于声明一组命名的常量 enum Color { Red, Green, Blue } 每个枚举类型都有相应的整型,可以显示的声明为byte,short,long 默认为int enum Color: long { Red, Greeen, blue } 多个枚举成员可以共享相同的关联值。示例:
enum Color
{
Red,
Green,
Blue,
Max = Blue
}
显示了一个枚举,其中的两个枚举成员(B1ue和Max)具有相同的关联值。
可以隐式地或显式地对枚举成员的关联值进行赋值。如果枚举成员的声明中具有常量表达式初始值设定项,则该常量表达式的值(隐式地转换为枚举的基础类型)就是该枚举成员的关联值。如果枚举成员的声明中没有初始值设定项,则将按下面的规则隐式地设置它的关联值:
— 如果枚举成员是枚举类型中声明的第一个枚举成员,则它的关联值为零。
— 否则,枚举成员的关联值将通过将前一个枚举成员(按照文本顺序)的关联值加1得到。这样增加后的值必须在基础类型可表示的值的范围之内;否则,将发生编译时错误。 System.Enum类型 System.Enum类型是所有枚举类型的抽象基类(该类型不同于枚举类型的基础类型),并且在任何枚举类型中都可以使用继承自System.Enum的成员。从任何枚举类型到System.Enum都存在装箱转换,并且从System.Enum到任何枚举类型都存在拆箱转换。
注意,System.Enum本身并不是枚举类型。相反,它是一个类类型,所有枚举类型都派生自该类型。System.Enum类型继承自System.ValueType类型(参见4.1.1小节),而后者又继承自object类型。在运行时, System.Enum类型的值可以是null,或对任何枚举类型的已装箱值的引用。
每个枚举类型都定义一个独特的类型;在枚举类型和整型之间或在两个枚举类型之间进行转换时,需要使用显式枚举转换。枚举类型的值域并不受它的枚举成员限制。具体来讲,一个枚举的基础类型的任何一个值都可以强制转换到该枚举类型,并成为该枚举类型的一个独特的有效值。
枚举成员的类型为包含它们的枚举类型(出现在其他枚举成员初始值设定项中时除外)。在枚举类型E中声明并且关联值为v的枚举成员的值为(E)v。 每个枚举类型都自动派生自System.Enum类(而该类又派生自System.ValueType和object)。因此,该类的继承方法和属性可用于枚举类型的值。
deglete 委托实例化 委托的实例由“委托创建表达式”(参见7.5.10小节)创建。新创建的委托实例将引用以下各项中的一个:
— 委托创建表达式中引用的静态方法。
— 委托创建表达式中引用的目标对象(此对象不能为null)和实例方法。
— 另一个委托。
例如:
delegate void D(int x);
class C
{
public static void M1(int i) {...}
public void M2(int i) {...}
}
class Test
{
static void Main() {
D cd1 = new D(C.M1); //静态方法
Test t = new C();
D cd2 = new D(t.M2); //实例方法
D cd3 = new D(cd2); //另一个委托
}
}
委托实例一旦被实例化,将始终引用同一个目标对象和方法。需要记住,当组合两个委托或者从一个委托移除另一个委托时,将产生一个新的委托,该委托具有自己的调用列表;被组合或移除的委托的调用列表将保持不变。
http://www.iseeclan.com/albumpic.asp?ID=346167 58.39.34.86 Windows程序设计 软件测试 网络操作系统 XML语言 软件工程与UML <1>JAVA_HOME
设置为 JDK的安装目录
<2>PATH
设置为 %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin
<3>CLASSPATH
设置为 .;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar
3、进行完如上配置后,就可以进行测试了
<1>在DOS下输入 java -version,然后输出显示,显示出来的是当前系统JRE的最高版本
<2>在DOS下输入 javac,如果出现了相应提示,说明编译环境已经配置成功
注意:<1>成功只是说明运行环境成功,一般只要安装了JRE就OK
<2>成功说明运行环境配置成功,接下来就可以进行Java的基本编程了
Tomcat+JSP配置 一. 开发环境配置
1. 下载安装J2SDK,添加以下系统环境变量
JAVA_HOME = C:/Program Files/Java/jdk1.5.0_02
classpath = .;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;
path = %JAVA_HOME%/bin(若path已存在,则追加即可)
2. 下载安装Tomcat(http://www.apache.org/dist/jakarta),添加以下系统环境变量:
TOMCAT_HOME = C:/Program Files/Java/Tomcat 5.5;
修改classpath为: classpath = .;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%TOMCAT_HOME%/common/lib/servlet.jar;
3. 下载安装Tomcat插件(http://www.sysdeo.com/sysdeo/eclipse/tomcatplugin).下载之前需要查看插件是否适合eclipse的版本.tomcatPluginV3.zip解压后将文件夹com.sysdeo.eclipse.tomcat_3.0.0拷贝到D:/Program Files/eclipse/plugins
4. 下载安装lomboz插件(http://download.forge.objectweb.org/lomboz/)
下载lomboz-emf-gef-jem-3.1RC2, 将解压后的eclipse文件夹复制到eclipse的安装目录,直接覆盖eclipse目录.
5. 下载eclipse: http://www.eclipse.org/downloads/
6. 软件:Struts 官方下载:http://www.apache.org/dist/jakarta/struts/
最近机器重装,想起朋友在用的eclipse的pp界面,于是也想升级一下。网上找了n多的文章,不是配置不起来,就是导致eclipse不能启动。发现问题在于网上的文章在关键的地方写的很不详细,特别是软件的版本问题。因为eclipse这些工具都是开源的,所以版本更新很快,因此如果我们没有查询过文档,很有可能把不匹配的插件组合在一起,导致在eclipse不能识别。而且,有的版本的eclipse由于很新,因此根本没有插件可以匹配,因此说也不是最新的就是最好的。好了,分析完失败的原因,开始讲成功的过程吧。(本文适合那些)
首先讲一下环境配置,注意我配置的环境是在win 2000 server下的,不是linux下的,配置的大致流程和操作系统无关,仅仅是在具体的安装上有差别。而配置成功与否,与操作系统无关。
软件安装分为一下几个部分:
1、 java环境安装:
这里使用的是jdk1.4.1(jdk1.4.2也可以),这个可以到sun公司的网站去下载;
2、 tomcat环境安装:
tomcat的版本是4.1的,安装版或是解压版都是可以的;
3、 eclipse 3 安装:
可以去下列地址下载http://www.eclipse.org/downloads/index.php
我下载的是 3.1M4 版本,这个版本应该是比较新的。
4、 tomcat插件安装;
tomcat插件是要到下面地址下载http://www.sysdeo.com/eclipse/tomcatPlugin.html,下载之前需要查看插件是否适合eclipse的版本,我下载的是tomcatPluginV3.zip;
5、 lomboz插件安装;
lomboz插件需要下载两个部分,一个是emf环境,另一个是lomboz插件,分别到下列地方去找
http://forge.objectweb.org/project/showfiles.php?group_id=97
http://download.eclipse.org/tools/emf/scripts/downloads.php#goto2.1.0I
我下载的是emf-sdo-runtime-I200412160800.zip
和org.objectweb.lomboz_3.1.0.N20050106.zip ;
这里主要是根据eclipse选择适当的lomboz插件,然后查看一下lomboz插件的 介绍,那里会介绍需要的emf插件的版本,然后再去下面的地址找emf插件。
好了,该下载的都有了,下面我介绍一下如何安装和配置。
一、 java环境安装
这个只要直接安装就可以了,不过最好能安装在系统盘以外的地方,这样可以更好理解jvm的配置;安装好了以后,需要配置环境变量,新建JAVA_HOME,并且配置path,把jdk的bin目录添加进去,这样就可以在命令行的任何路径使用jdk的命令了。
[测试] :编写一个hello world程序,然后在dos下使用javac hello.java和java hello命令,如果可以正常执行,就证明jdk安装成功了。
二、 tomcat安装
解压版的直接解压就可以了,然后配置TOMCAT_HOME,安装版的要注意的两点,一个是安装完之后tomcat的服务就能够启动的了,但是还是要配置TOMCAT_HOME;第二个就是需要查看一下安装程序是不是把tomcat服务注册成为windows的启动服务,需要到“服务”里查看,如果有这个选项就把它设置为手动启动,并且先停止这个服务。
[测试]:使用startup.bat命令,服务正常启动之后,ie浏览器里输入
http://localhost:8080/ 如果出现正常的小猫页面,那就应该没有问题了。
三、 eclipse 3安装
eclipse的安装倒是很简单,只要解压,然后把eclipse目录复制到盘符下就可以了,启动的时候,系统会自动寻找jvm,当然可以再以后配置,但是好像是必须先安装jdk。
四、 tomcat插件安装,emf插件安装,lomboz插件安装,
这几部分的步骤都是一样的,解压软件包,然后根据里面的目录结构,把目录文件分别复制到feature或plugins目录里,这样就行了,下面将详细讲述一下eclipse的配置。
五、 配置eclipse
1、 首先,打开配置界面 window->preferences。如果这几个插件安装成功,左边的列表里应该有lomboz和tomcat的选项。如果没有,检查上面的步骤是不是正确。
点击java->Installed JREs,然后显示如上,如果是初始安装的,只有显示第一个jre(不要问我什么是jre,自己查资料去),那是系统默认的安装在c盘的jre,如果系统当中安装了多个jdk,那么最好还是新建一个,点击add,然后选择你需要使用的jdk的位置,然后它会自动寻找其他的参数,点击ok。返回界面之后,不要忘记点选刚刚添加的jdk,要不然是没有用的。然后点击ok关闭这个窗口。
2、 再次打开配置界面,点击tomcat选项
这里是配置tomcat的参数,根据你安装的tomcat的版本,选择tomcat version,然户找到该tomcat的主目录,输入在tomcat home,下面的参数会自动配置,点击apply。 然后在左边选择advanced,同样把tomcat的主目录复制在tomcat base,点击apply。
最后在左边选择jvm setting,选择刚刚加入的jre,点击apply,点击ok。这样就可以了。回到界面,点击工具栏上的黄色小猫的图标,如果配置正确,在console里应该有启动tomcat的信息。如果有,就代表tomcat配置成功了。
1、 lomboz基本上不用什么配置,如果左边有那个lomboz选项,基本上就是成功了。点击lomboz,然后选择刚才配置的jdk里的tools.jar,这样配置就完成了。测试的方法是新建一个jsp文件,看看打开的时候是不是对script代码有特殊显示,并且建个测试类,看看jsp是不是能够自动引用类里的函数。
好了,以上就是我配置成功的步骤,因为对应版本的软件都是可以找到的,所以配置起来应该没有什么问题,有问题的话问我估计也没用,上网查文档是最好的方法,祝大家顺利。
/** class:SocketTest_SvrClit author:chengyun date: with:to test socket---server program; **/
import java.net.*; import java.io.*;
public class SocketTest_Server { public static void main(String[] args) throws UnknownHostException,IOException,ConnectException { ServerSocket aServerSocket=new ServerSocket(3434); Socket aServer=null; try { aServer=aServerSocket.accept(); try { BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); BufferedReader in=new BufferedReader(new InputStreamReader(aServer.getInputStream())); PrintWriter out=new PrintWriter(new OutputStreamWriter(aServer.getOutputStream())); String serverstring=null; String clientstring=null; System.out.println("hello! enter the bye to exit."); System.out.print("Server:wait client"); serverstring=input.readLine(); boolean done=false; while(!done) { if(serverstring !=null) { out.println(serverstring); out.flush(); } clientstring=in.readLine(); if(clientstring !=null) System.out.println("client:"+clientstring); System.out.print("server:"); serverstring=input.readLine(); if(serverstring.equals("bye")) done=true; } } catch(Exception e) { System.out.println(e.getMessage()); } finally { aServer.close(); } } catch(Exception e) { System.out.println(e.getMessage()); } finally { aServerSocket.close(); }
} }
/** class:SocketTest_SvrClit author:chengyun date: with:to test socket---client program; **/
import java.net.*; import java.io.*;
public class SocketTest_SvrClit { public static void main(String[] args) throws UnknownHostException,IOException,ConnectException { Socket aClient=null; aClient=new Socket("192.168.0.8",3434); //InetAddress.getLocalHost() try { BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); BufferedReader in=new BufferedReader(new InputStreamReader(aClient.getInputStream())); PrintWriter out=new PrintWriter(new OutputStreamWriter(aClient.getOutputStream())); String clientString=null; String serverString=null; System.out.println("hello!enter bye to exit."); boolean done=false; while(!done) { serverString=in.readLine(); if(serverString !=null) System.out.println("Server:"+serverString); System.out.print("client:"); clientString=input.readLine(); if(clientString.equals("bye")) done=true; if(clientString !=null) { out.println(clientString); out.flush(); } } in.close(); out.close(); } catch(Exception e) { System.out.println(e.getMessage()); } finally { aClient.close(); } } }