非常详细的java笔记体会.doc

上传人:一*** 文档编号:589079 上传时间:2018-11-06 格式:DOC 页数:174 大小:2.66MB
返回 下载 相关 举报
非常详细的java笔记体会.doc_第1页
第1页 / 共174页
非常详细的java笔记体会.doc_第2页
第2页 / 共174页
点击查看更多>>
资源描述

《非常详细的java笔记体会.doc》由会员分享,可在线阅读,更多相关《非常详细的java笔记体会.doc(174页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、.Java 笔记整理包含内容UnixJava 基础,数据库(Oracle jdbc Hibernate pl/sql) ,web,JSP,Struts,AjaxSpring,Ejb,java 和模式.Linux/Unix 笔记inode :存储编号(地址)ls -k:查看磁盘分区ls -li:显示当前文件的 inode 号。目录的大小跟文件的大小有关,跟目录里的文件(目录)数量无关。一行多个命令的话,中间用分号分开。如:pwd;cal;datelast | grep pts/13 表示查看 pts/13 登陆服务器的记录。find . -mtime -10 -print-10:表示 10 天以

2、内的,+10:表示 10 天以前的,.:表示当前路径-mtime:最后一次修改时间。-print:表示输出到显示器(可有可没有) 。-user 0:表示 UID 是 0。size+400:表示大于 400*0.5K ,-400 表示小于 400*0.5K-atime:表示最后一次访问时间。grep:在文件里查找符合要求的那一行。通常用在管道()后面,表示对 | 前面的输出做查找。如:cat /etc/passwd | gred liu | sortsort:表示排序。进程是作业,作业是进程。前台就是终端,后台就是服务器。当杀掉父进程,前台子进程会消失, ,后台作业不依赖于任何终端,会继续运行L

3、INUX 常用命令(基础)1. man 对你熟悉或不熟悉的命令提供帮助解释eg:man ls 就可以查看 ls 相关的用法注:按 q 键或者 ctrl+c 退出,在 linux 下可以使用 ctrl+c终止当前程序运行。2. ls 查看目录或者文件的属*,列举出任一目录下面的文件eg: ls /usr/man ls -la.d 表示目录(directory),如果是一个“-“表示是文件,如果是 l 则表示是一个连接文件(link)b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x)。3. cp 拷贝文件eg: cp filename1 filename2 /把 filena

4、me1 拷贝成filename2 cp 1.c netseek/2.c /将 1.c 拷到 netseek 目录下命名为2.c 4. rm 删除文件和目录eg: rm 1.c /将 1.c 这个文件删除5. mv 移走目录或者改文件名eg: mv filename1 filename2 /将 filename1 改名为filename2mv qib.tgz ./qib.tgz /移到上一级目录6. cd 改变当前目录 pwd 查看当前所在目录完整路径eg: pwd /查看当前所在目录路径cd netseek /进入 netseek 这个目录cd /退出当前目录7. cat,more 命令将某个

5、文件的内容显示出来。两个命令所不同的是:cat 把文件内容一直打印出来,而 more 则分屏显示eg; cat1.c /就可以把代码粘帖到 1.c 文件里,按 ctrl+d 保存代码。cat 1.c 或 more 1.c /都可以查看里面的内容。gcc -o 1 1.c /将 1.c 编译成.exe 文件,我们可以用此命编译出代码。8.chmod 命令 权限修改 用法:chmod 一位 8 进制数 filename。eg: chmod u+x filenmame /只想给自己运行,别人只能读/u 表示文件主人, g 表示文件文件所在组。 o 表示其他人 ;r 表可读,w 表可写,x 表可以运行

6、chmod g+x filename /同组的人来执行9. clear,date 命令clear:清屏,相当与 DOS 下的 cls;date:显示当前时间。10. mount 加载一个硬件设备用法:mount 参数 要加载的设备 载入点eg: mount /dev/cdromcd /mnt/cdrom /进入光盘目录11. su 在不退出登陆的情况下,切换到另外一个人的身份用法: su -l 用户名(如果用户名缺省,则切换到 root 状态)eg:su -l netseek (切换到 netseek 这个用户,将提示输入密码)12.whoami,whereis,which,id/whoami

7、:确认自己身份/whereis:查询命令所在目录以及帮助文档所在目录/which:查询该命令所在目录(类似 whereis)/id:打印出自己的 UID 以及 GID。(UID:用户身份唯一标识。GID:用户组身份唯一标识。每一个用户只能有一个唯一的UID 和 GID)eg: whoami /显示你自已登陆的用户名whereis bin 显示 bin 所在的目录,将显示为:/usr/local/bin which bin 13. grep,findgrep:文本内容搜索;find:文件或者目录名以及权限属主等匹配搜索eg: grep success * /*查找当前目录下面所有文件里面含有 s

8、uccess 字符的文件14. kill 可以杀死某个正在进行或者已经是 dest 状态的进程eg; ps ax15. passwd 可以设置口令16. history 用户用过的命令eg: history /可以显示用户过去使用的命令17. ! 执行最近一次的命令18. mkdir 命令eg: mkdir netseek /创建 netseek 这个目录19. tar 解压命令eg: tar -zxvf nmap-3.45.tgz /将这个解压到 nmap-3.45这个目录里20. finger 可以让使用者查询一些其他使用者的资料 eg: finger /查看所用用户的使用资料finger

9、 root /查看 root 的资料ftp 上传下载 ftp 192.168.1.100用户:xiangf Pwd xiangfPut mput 上传多个 Get mget 下载多个在 linux 下 Jdk 的安装1. 先从网上下载 jdk(jdk-1_5_0_02-linux-i586.rpm) 进入安装目录#cd /home#cp jdk-1_5_0_02-linux-i586.rpm /usr/local#cd /usr/local给所有用户添加可执行的权限#chmod +x jdk-1_5_0_02-linux-i586.rpm.bin#./jdk-1_5_0_02-linux-i5

10、86.rpm.bin此时会生成文件 jdk-1_5_0_02-linux-i586.rpm,同样给所有用户添加可执行的权限#chmod +x jdk-1_5_0_02-linux-i586.rpm安装程序#rpm -ivh jdk-1_5_0_02-linux-i586.rpm出现安装协议等,按接受即可2.设置环境变量。#vi /etc/profile在最后面加入 #set java environmentJAVA_HOME=/usr/java/jdk-1_5_0_02CLASSPATH=.:JAVA_HOME/lib.tools.jarPATH=JAVA_HOME/bin:PATHexpor

11、t JAVA_HOME CLASSPATH PATH保存退出。3.检查 JDK 是否安装成功。#java -version如果看到 JVM 版本及相关信息,即安装成功!bash-profile 是配置文件,配置 java-home,path,classpath 等。空格。bash-profile 从新启动 Vim 。bash-profile 编辑Comment U1: 、一个“.java”源文件中是否可以包括多个类(不是内部类)?有什么限制?可以。必须只有一个类名与文件名相同。.Javac 把.java 编译成。Class java运行。Class 文件 java d.按包的名字自动生成相对应

12、的Core Java笔记人源文件编译器程序CPU编译器:1,编译执行:源文件可执行代码。如:CC语言。执行效率高。可移植性差。开发成本的增加。2,解释执行:源文件体系结构中立的中间代码( .class) 解释器 机器指令。 如 :java 语言执行效率低。 可移植性好。 对硬件要求高。JAVA语言:(源文件)(编译器 javac.exe)中间码(虚拟机 java.exe)机器指令CPU(编译) (解释).java - .class - 可执行文件PATH:指定可执行程序(命令)在哪个目录。不同目录用(:)分开。SHELLJAVA_HOME:指定 JDK的安装目录。给其它应用程序看的。CLASS

13、PATH:指定(jar 文件)中间字节码文件在什么地方。由多个目录组成的集合。让虚拟机可以找到中间字节码文件。就是可以找到.class 文件服务器上 csh:.cshrcbsh:.profile客户端上。bash:.bash_profile1 # .bash_profile3 # Get the aliases and functions4 if -f /.bashrc ; then5 . /.bashrc 6 fi /if的结尾。8 # User specific environment and startup programs /#代表注释。9 JAVA_HOME=/opt/jdk1.5.

14、0_15 JDK 安装路径- JDK = JRE JVM(硬件)+编译器( 软件) +编译器工具+类库 10 PATH=$JAVA_HOME/bin:$PATH:$HOME/bin 系统定义的PATH 启动命令11 CLASSPATH=.:java/jar/servlet-api.jar:/java/jar/jsp-api.jar /类路径12 13 export PATH CLASSPATH JAVA_HOME 使三个变量变成全局变量。 。Source .bash_profile:只能经过这条命令之后,才会让修改的变量生效。 (csh). .bash_profile。 只能经过这条命令之后,

15、才会让修改的变量生效。 (bash)java -version:查看虚拟机的版本号。2.,编写第一个 JAVA程序。1) ,以.java 结尾的文件。2) ,所有内容,都要写在一个类中(类名要和文件名想同,包括大小写在内)pbulic class HelloWorld.3) ,main 函数是程序执行的入口,程序从 main函数的第一条语句开始执行,执行到 main函数结束为止。public static void main(String argvs)4) ,输出语句:System.out.println( );5) ,每条语句以(;)结尾先指定到源程序存放的目录,然后进行以下步骤运行。编译:

16、javac 命令。如:javac -d . HelloWorld.java 生成 HelloWorld.class类文件启动虚拟机(java),运行类文件。如:java com.work.core.HelloWorld 后面的.class 省略,无需写成 java com.work.core.HelloWorld.class包(package):1,package com.kettas.corejava; 包声明。2,必须保证类文件一定放在相应的目录结构中,HelloWorld.class 放在 com/kettas/corejava目录中。3,运行时,一定在顶层包的同级目录下运行 java命

17、令,例如:com(shell 界面里运行)java com.kettas.corejava.HelloWorld(如果顶级包所在的目录已经被配置到 CLASSPATH中的话可以在任意目录中启动 java 命令)1,类文件太多,不好管理。2,解决重名。javac -d . HelloWorld.java (不仅能够编译类文件,同时还能创建包结构)运行命令 java xxxx 类的名字- 启动虚拟机(一)语言:适合于 internet1,跨平台的 (属于解释执行的语言)2,更容易开发出安全的程序:1)垃圾回收器, (帮助程序员管理内存)2)取消了指针,对数组越界进行检查3)安全检查机制, (对生成

18、的字节码检测,如:包结构检测)Hash算法, ,只要加密的源是一样的。经过 Hash运算之后,Hash 值都一样。加密的源如果不一样了,经过 Hash运算之后,值都不一样。Comment U2: 25、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?short s1 = 1; s1 = s1 + 1; (s1+1 运算结果是 int 型,需要强制转换类型)short s1 = 1; s1 += 1;(可以正确编译)Comment U3: 4、String 和StringBuffer 的区别JAVA 平台提供了两个类:Stri

19、ng 和 StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个 String 类提供了数值不可改变的字符串。而这个 StringBuffer 类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer 。典型地,你可以使用StringBuffers 来动态构造字符数据。.(二)变量:如: 学生,姓名,性别,age帐户,ID,password,balance,username 内存:没记忆,容量小,成本高,存储变量数据,最小逻辑单位:byte(字节)=8bit(位)外存(硬盘):有记忆,容量大,成本低,存储文件数据1,变量声明:给变量起

20、名,是给变量选择一种数据类型。如:int age;不同的变量,1)参与的运算是不同的,2)存储的值是不同的,3)需要的存储空间的大小也不同,java数据类型:简单数据类型(原始数据类型)数字: 整数:byte(1 字节)short(2 字节) int(在内存中占 4个字节)long(8 个字节)小数:float(4 个字节,单精度浮点型) double(8 个字节,双精度浮点型)字符:char(一个字符2 个字节):只能表示一个字。 如:char c=中; c 存的是中这个字的编码。布尔:boolean(true,false),不能用 0和非 0表示。String(字符串)复杂数据类型(类)S

21、tring 类提供了数值不可改变的字符串 String s=new String(“abc”);创建了两个对象 1,在字符串池中创建一个对象(此对象是不能重复的)2 ,new 出一个对象。Java 运行环境有一个字符串池,由 String类维护。执行语句 String s=“abc“时,首先查看字符串池中是否存在字符串“abc“,如果存在则直接将“abc“赋给 s,如果不存在则先在字符串池中新建一个字符串“abc“,然后再将其赋给 s。执行语句 String s=new String(“abc“)时,不管字符串池中是否存在字符串“abc“,直接新建一个字符串“abc“(注意:新建的字符串“ab

22、c“不是在字符串池中),然后将其付给 s。2,初始化 (局部变量而言,必须初始化才能使用) 如:age=10; 3,通过变量的名字对变量进行操作,如:age=other;赋值时,左右1)数据性质是否一样。2)所占用的内存空间上考虑 (左右)不用类型转换。 (左右)要类型强制转换,如:int age=1;long l=10;age=(int)l;符号位:0 代表正数,1 代表负数。BigDecimal比 double更精确,一般用于处理高精度运算。复合表达式:“a/b=“+(a/b);作业,打印润年,1,能被 4整除,但不能被 100整除2,能被 400整除。自增(+) ,自减()运算符。前:+

23、a;先对 a+1,再返回 a+1之后的值。后:a+;先返回 a的值,然后对 a进行+1。前,后共同的特点:a 本身的值都会+1;区别在于表达式的返回值是不一样;用返回值来参与计算。? : (boolean express)? A : B;如:char ch=(52)?Y:N; ?前面的布尔表达式如果为真就执行 A,否则执行 B。(:左右两侧的返回类型要一致,且与 ch的返回类型也一样)Comment U4: var:是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。.j

24、ava打包(压缩包 .zip .rar .tar .gz .jar) 。root/yesq/|-com/|-work/|-core/|-VarTest.class|-RunNian.class. . . . . .压缩命令: jar -cvf abc.jar dir 解压命令:jar -xvf abc.jarabc.jar为生成压缩包的名字dir为被打包的文件目录下的东西c:是做压缩。v:为压缩过程的信息。f:指定压缩文件的名字。x:是做解压打包一般从顶层包开始打。如:javalocalhost yesq$ jar -cvf first.jar com/当前目录(yesq)下的 com文件夹开

25、始打1,获得别人提供的 jar文件2,将 jar文件的名字以及他的绝对路径配置到 CLASSPATH中3,使用 import语句,将其他包的内容导入到本文件中,如:引入包 mon包中的 SystemIn类import mon.SystemIn; java 中的流程控制 1,顺序2,条件(代码是否执行,依赖于一个特定的条件)if(boolean express)XXXXXX; /如果布尔表达式为真就执行 XXXXXX。XXXXXX;elseXXXXXX; /如果布尔表达式为假就执行 XXXXXX。XXXXXX;3,循环(相同的代码,被重复的执行多次)a,初始化循环条件。b,确定循环条件。c,确定

26、循环变量在循环体中的变化。(1) a;while(boolean express)XXXXXXXXX; /如果布尔表达式为真就执行XXXXXXXXXXXXXXX;c;(2) for(a;b;c)(3) doXXXXXXXXXX; /循环体至少执行一次;XXXXXXXXXX;while(boolean express);while(XXX)XXXXXX;XXXXXX;bread; /或者 continue;XXXXXX;break :用在循环或分支里,用于退出整个循环或分支continue :用在循环里,用于结束本次循环。接着开始下一次循环4,分支switch(var)case 1 : XXXX

27、XX;break;case 2 : xxxxxx;break;.default : xxxxxxx; / default后面可以不用 break;函数(方法):是由一些相关代码组成的集合,目的是为了解决一个特定的问题,或者实现某个特定的功能。函数(方法)一定有一个自己的名字,通过函数的名字执行函数中的代码。2,在 java中如何定义函数:a,声明:public static void printMenu(int a,double b).b,编写函数体:如: public static void printMenu(int a,double b)XXXXXXXXXXX;XXXXXXXXXX;函数

28、(方法)里面不允许再有其它的函数(方法) ,函数(方法)的位置必须是并列的。3,调用函数:通过函数名,如 pirntMenu(a,b);public static void main(String argv)XXXXXXXXXXXX;printMenu(a,b);XXXXXXXX;调用者原数据函数return 作用:1,结束本方法。2,返回结果。一个函数返回的值只能有一个。4,值传递。传递的是实参的值,被调函数使用的数都是实参的拷贝。是否改变实参,要看被调函数的设计。数组:一维数组:三种声明方式一, (1)首先要声明。如:int array;或 int array;(2)申请内存空间如:arr

29、ay=new int2; Comment U5: 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?对于 GC 来说,当程序员创建对象时,GC 就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是“可达的 “,哪些对象是“ 不可达的 “。当 GC 确定一些对象为“不可达“ 时, GC 就有责任回收这些内存空间。可以。程序员可以手动执行 System.gc(),通知 GC 运行,但是 Java 语言规范并不保证 GC 一定会执行。.array代表数组 array的首地址

30、(引用:引用就是 C里的指针。 ) ;当参数传递时,只要用数组的首地址就可以。1,数组中的元素类型要一致。2,数组长度不能缺省,不能改变,但可以删了重建。3,内存空间连续,有索引下标值(从 0开始,最大 length-1)优缺点:查询快,增删慢(链表,查询慢,增删快)只要有 new在,就要为变量分配内存。 array.length /表示数组 array的长度。array存的是 array数组首变量的地址。二,数组的显示初始化:int array=1,2,3,4,5,6;三,int array=new int1,2,3,4,5,6,7;数组的拷贝:public static int expan

31、d(int a)int b=new inta.length*2;/* for(int i=0;i boolean引用所指向的对象和类名所代表的类型是否一致 a instanceof Animal - true a instanceof Cat- true a instanceof Dog-falseEmployee e=new Manager();e instanceof Employee -truee instanceof Manager- true 属性没有多态,属性只看编译时类型编写程序的顺序:class 类名private属性(有什么)无参的构造方法(public 类名() )有参的构

32、造方法(作用:给属性赋值)set和 get(设置和获得属性)业务方法(做什么)一,修饰符:static static变量:如:static int index=2;类的所有对象共同拥有的一个属性;可以用类名直接访问,又称为类变量,类的所有对象共同拥有的一个变量;类第一次被加载时会初始化静态变量(也就是会先执行 static修饰的变量) ;跟类创建了多少对象无关;任何对象对静态变量做的修改,其他对象看到的是修改后的值。可以用作计数器,记录类创建对象的个数 , static 变量在类加载的时候只会被初始化一次,static方法:如:public static void teach()可以用类名直接

33、去调用,不需要对象所以不能直接访问(在没有对象的情况下)实例变量,在静态方法里不能出现 this和 super,类的所有对象共同拥有的一个方法;跟类创建了多少对象无关。在继承里,父类的静态方法只能被子类的静态方法覆盖,且覆盖以后没有多态(访问的是父类的静态方法) ;static初始化块:如:class Teacher()static int index=4;static /static初始化块.静态初始华块:用 static修饰类里面的一个独立的代码块,类第一次被 JVM加载的时候执行,只被执行一次。类加载:JVM 在第一次使用一个类时,会到 classpath所指定的路径去找这个类所对应的字

34、节码文件,并读进 JVM保存起来,这个过程称之为类加载,一个线程一个 jvm。二,final (最后的,最终的)final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承final类:如:final class Animal表示该类不能被继承,意味着不能改变里面的代码;对虚拟机的正常运行有重要作用的类通常用 final修饰,如:String,System,Math .等类final方法:如:public final void sleep() 该方法不能被覆盖(修改) ,但能被子类访问。.final 变量:如:final (static) int index=4;该变量是常

35、量能被继承(访问) ;final 修饰的变量就是常量,通常和 static 一起连用,来声明常量;final 修饰引用类型数据,指的是引用(地址)不能变,但引用里的数据不受限制。final 修饰的变量,只要在初始化的过程中就可以赋值。实例变量:声明的同时或构造方法里赋值;静态变量:声明的同时或在静态代码块里赋值;三,abstractabstract 类:如:abstract class Animal抽象类,不能创建对象(如一些父类),但是可以声明一个抽象类型的引用(可以声明父类类型子类对象,编译时利用多态调用抽象方法) 。含有抽象方法的类一定是抽象类,但抽象类并不一定要有抽象方法;抽象类一般是

36、用来被继承的;子类继承自抽象类,就要实现里面的抽象方法,如果不想让子类也是抽象类的话,必须实现父类里面所有的抽象方法。抽象类有构造方法,有父类,也遵循单继承的规律。abstract 方法:如:public abstract void sleep();抽象方法,只有方法名的定义,没有实现体(只定义了能做什么,没定义怎么做) ,不能被调用,用于被子类的方法覆盖或重新实现。只能放在抽象类中。好处:允许方法的定义和实现分开。public protected default private static final abstract可以: public static private static pub

37、lic finalpublic static final不可以:abstract final void eat(); private abstract void eat();static abstract void eat();abstract 不能和 final,private,static 连用。四,interface:是抽象类的变体, 。在接口中,所有方法都是抽象的。如:interface Mint num=3;void eat();理解为接口是一个特殊的抽象类,所以接口不能创建对象,且接口没有构造方法,但可以声明一个接口类型的引用(m 是接口类型实现类对象,如:M m=new N();

38、)接口存在的意义是被子类实现,如果不想让子类也抽象,就要实现接口里面所有的抽象方法,实现过程中注意访问权限;用 implements 关键字实现接口,如:class N implements Mpublic void eat().接口里面的常量默认都是 public static final 的;接口里面的方法默认都是 public abstract 的。接口本身支持多继承,继承了父接口里功能的定义,如,interface A extends B,C,D /A,B,C,D 都是接口;类可以同时继承一个父类和实现接口(或多个接口) 。如:class AA extends BB implement

39、s CC,DD,EE/AA,BB 是类,CC,DD,EE 是接口;作用:1,用接口去实现多继承,接口是对类的共性进行再次抽象,抽象出类的次要类型。如:蜘蛛侠,拥有人和蜘蛛的属性,但主要类型是人,次要类型(接口)是蜘蛛,因为接口是次要类型,所以在类关系里不占一个节点,不会破坏类层次关系的树状结构,2,标准(保证弱耦合):一个接口就是一个标准(里面的属性不能改变,只定义了功能,但没有被实现) , 接口将标准的制定者,标准的实现者以及标准的使用者分离开,降低实现者和使用者的耦合。接口是 java 里一种重要的降低耦合的工具;接口可以屏蔽不同实现类的差异,当底层的实现类更换后,不会对上层的使用者产生影响,体现在参数和返回值。写程序时,应该先写实现者再写使用者,如:Bank.java 是实现者,View.java 是使用者,但是有了接口之后,就可以用接口回调的功能;接口回调:先定义接口,然后写使用者和实现者的顺序随便(一般是先写使用者,后写实现者) ;利用参数把实现者传给使用者(即:实现者是使用者的属性) ,使用者利用接口调用实现者相应的功能。*接口和抽象类的区别 1 一个类可以 implements 多个接口,而只能 extends 一个抽象类2,一个抽象类可以实现部分的方法,而接口都是抽象的方法和属性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com