java笔记
java学习笔记【范本模板】

Java学习笔记Java概述java语言是解释执行,java源码是通过编译生成一种特殊的.class的中间字解码文件,然后再有JVM进行解释执行。
java语言对指针进行了上层的封装,它保证能够通过这个指针(引用)来访问有效的内存单元.java语言不允许多继承,使继承关系成树装图,每个类都只能由一个父类。
java语言的开发效率高,但执行效率低。
(相当于c++的55%)java的垃圾回收机制,在java中new的对象不需要向c++一样进行delete操作,JVM会根据情况回收垃圾对象。
(懒汉机制,等待资源没有的时候才回收)我们只能够建议JVM进行垃圾回收,例如(System.gc() RunTime。
gc()这两个方法就是建议JVM进行垃圾回收的方法)JDK,java开发工具包(类库和运行命令),JRE,java运行环境,JVM,java虚拟机(解释执行的核心,对字节码进行翻译成运行环境的机器码,它可以屏蔽平台差异。
JVM是不跨平台的。
)JAVA_HOME,指明JDK安装的位置,CLASSPATH,指明类文件的位置,PATH,指明命令的可执行文件的位置。
java源文件的文件名必须和文件中定义public class的类名(大小写页要相同)相同。
java源代码中的main方法的定义写法。
main方法是程序的入口.public static void main(String[] args){System.out。
println("Hello world");}java源文件也要先编译,使用javac xxx。
java格式的命令得来编译,使用java xxx来运行。
定义包结构要放在有效代码的第一行,package xxx。
xxx,包的定义在一个程序中只能由一个,在加上包定义之后编译可以使用javac —d 路径 xxxx.java,这个-d这个命令行的参数可以指定包结构的位置“."代表当前目录.在运行时要使用类的全名java xxx.xxx。
java 笔记

"Java 笔记"通常意味着你在记下有关Java编程语言的信息或笔记。
如果你需要一个Java编程的笔记模板,我可以为你提供一个。
以下是一个简单的Java编程笔记模板:**Java编程笔记****1. Java语言基础*** Java是一种面向对象的、类基础的编程语言。
* Java程序由类和对象组成。
* Java使用分号(;)来结束语句。
* Java使用大括号({})来定义代码块。
* Java的关键字都是小写的。
**2. 数据类型*** 基本数据类型:int, char, float, double, boolean等。
* 引用数据类型:类、数组。
**3. 变量和常量*** 变量:有名称、有值、可改变。
* 常量:有名称、有值、不可改变。
**4. 运算符*** 算术运算符:+,-,*,/,%等。
* 比较运算符:==,!=,>,>=,<,<=等。
* 逻辑运算符:&&(与),||(或),!(非)。
* 位运算符:&(与),|(或),^(异或),~(非),<<(左移),>>(右移)。
**5. 控制结构*** if语句* switch语句* for循环* while循环* do-while循环**6. 函数和方法*** 定义函数/方法:返回类型函数名(参数列表) { }* 调用函数/方法:函数名(参数列表)**7. 类和对象*** 类是一个定义了对象的属性和方法的模板。
* 对象是类的实例。
* new关键字用于创建对象。
**8. 继承和多态*** 继承:子类继承父类的属性和方法。
* 多态:同一个方法在子类中可以有不同的实现。
**9. 接口和抽象类*** 接口:定义了一个类应该有的方法,但不提供实现。
* 抽象类:包含抽象方法的类,不能被实例化。
**10. 异常处理*** try-catch语句用于捕获和处理异常。
* try块包含可能会抛出异常的代码,catch块包含处理异常的代码。
JAVA学习笔记基础知识.doc

JDK :可以开发编译与运行JAVA程序的工具。
JRE:可以运行JAVA程序的工具。
JVM:java虚拟机,是在一台计算机上山硬件或软件模拟的计算机。
它的功能是读取并处理编译过的字节玛文件(class文件)环境变量:path:JDK 中bin 目录classpath:.java_home:JDK 的路径homc_path: JDK 的路径开始一>Sitj->cnid->java -versionJavaSE—Oraclc 今JavaEEJava版木:JavaSE:J2SEJavaEE:J2EEJavaME:J2MEJAVA文件类型:.java文件:源文件,保存JAVA源代码,文本文件。
.class文件:类文件,保存字节码,二进制文件。
使用javac命令将java文件编译为class文件:javac文件名.java (DOS文件名不区分大小写)使用java命令运行class文件:java类名(类名区分大小写)1.在一个JAVA文件中可以有多个类2.在个JAVA文件中只能有一个公有(public)的类3.公有的类的名字必须与文件名-样(包括大小写)4.JAVA代码区分大小写5.niain()是程序的入口6.通常情况下main()应该放在公有的类中7.每句代码后面用分号表示结束8.不允许在代码中直接书写中文的标点注释:1.单行注释:〃2.多行注释:/*注释内容*/3.文档注释第三章数据类型:有两种。
基本数据类型(简单数据类型),引用数据类型。
基本数据类型:有8种数字类型:整型,浮点型1.整型:表示十进制,八进制(0开头),十六进制(用Ox或0X头),在JAVA中没有无符号的数字a)byte:字节类型,1个字节-27—27-1b)short:短整型,2 个字节-215—215-10 int:整型,4个字节在JAVA中整数默认为讪,-231—231-1d) long:长整型,8个字节,-263—263.1,在数字后加1或L2.浮点型:a)Ooat:单精度,在数字后面加F或仁4个字节b)double:双精度,在JAVA中-个浮点型的数字默认为double类型。
CoreJava全套详细笔记(心血放出)资料

目录1.原码、反码、补码 (5)1.1.原码 (5)1.2.反码 (5)1.3.补码 (5)1.4.负数的补码转换为十进制数 (6)2.char (6)3.运算符 (6)3.1.移位运算符 (6)3.2.位运算符 (7)3.3.逻辑运算符 (7)4.流程控制 (7)4.1.switch (7)4.2.break和continue (8)5.方法 (8)5.1.构造方法 (8)5.2.方法重载 (8)6.this (9)7.继承 (9)7.1.super (9)7.2.多态(polymorphism) (10)7.3.instanceof (10)8.static (11)9.final (11)10.abstract (12)11.类的加载 (12)11.1.触发类加载的几种情况 (12)11.2.类加载的顺序 (12)12.接口(interface) (13)13.访问控制 (14)14.Object类 (15)14.1.clone() (15)14.1.1.对象克隆过程 (15)14.1.2.浅复制和深复制概念 (16)14.2.finalize() (16)14.3.equals(Object obj) (16)14.4.toString() (16)15.String类及对象池 (16)15.1.String a="hello"; (17)15.2.String c=new String("hello"); (17)16.StringBuffer和StringBuilder (17)17.主方法参数 (18)18.方法的可变长参数 (18)19.包装类 (18)19.1.Number (19)19.2.自动封箱/自动解封(Autoboxing/Unboxing) (19)19.3.对象池 (19)20.内部类 (20)20.1.意义 (20)20.2.四种形式的内部类 (20)20.2.1.静态内部类 (20)20.2.2.成员内部类 (21)20.2.3.局部内部类 (22)20.2.4.匿名内部类 (22)20.3.内部类的应用 (24)21.集合框架(Collection Framework) (24)21.1.Iterator接口和Iterable接口 (25)21.2.Connection接口和Connections类 (25)21.2.1.java.util.Collection (25)21.2.2.java.util.Collections (25)21.3.List(列表)接口 (25)21.3.1.ArrayList (26)21.3.2.LinkedList (26)21.3.3.Vector (26)21.4.Set(集合)接口 (26)21.4.1.HashSet (27)21.4.2.TreeSet (29)21.5.排序的两种办法 (29)parable(可比较的) (29)parator(比较器) (30)21.6.Map (30)21.6.1.HashMap (30)21.6.2.Hashtable (31)21.6.3.Hashtable下的子类Properties类 (31)21.6.4.SortedMap接口下的TreeMap类 (31)22.泛型(Generic) (32)22.1.泛型特点 (32)22.2.通配符 (32)22.2.1.上限通配符: (32)22.2.2.下限通配符 (33)22.2.3.总结: (33)22.3.运用 (34)23.异常 (34)23.1.异常处理基础 (34)23.2.异常的类继承结构 (34)23.3.常见的未检查异常 (35)23.4.throw (35)23.5.自定义异常类 (36)24.反射(Reflection) (37)24.1.反射需要用到的类 (37)ng.Class (37)ng.reflect.Field (38)ng.Package (38)ng.relect.Modifier (38)ng.reflect.Mothed (38)ng.reflect.Array (38)ng.reflect.Constructor (38)24.2.三种获得某个类的Class对象的方法 (38)24.2.1.Class c=Class.forName("类名"); (38)24.2.2.Class c=类名.class; (39)24.2.3.Class c=对象名.getClass(); (39)24.3.所能探查出来的类的特征 (39)24.4.通过反射生成一个类的实例 (39)24.4.1.第一种方法 (40)24.4.2.第二种方法 (40)25.File (40)25.1.构造方法 (40)25.2.重点方法 (41)25.3.目录 (42)26.流 (42)26.1.字节流 (42)26.2.字符流 (44)26.3.节点流(Node Stream): (45)26.4.过滤流(Filter Stream) (45)26.5.ObjectInputStream和ObjectOutputStream (46)26.6.字节流转化成字符流的桥转换器 (48)26.7.文本文件和二进制文件 (50)27.线程 (50)27.1.概念与原理 (50)27.1.1.操作系统中线程和进程的概念 (50)27.1.2.Java中的线程 (51)27.1.3.Java中的线程模型 (51)27.1.4.一些常见问题 (51)27.2.线程状态的转换 (52)27.2.1.线程的七种状态 (52)27.2.2.阻止线程执行 (54)27.3.线程的同步与锁 (55)27.3.1.同步和锁定 (55)27.3.2.静态方法同步 (60)27.3.3.如果线程不能获得锁会怎么样 (60)27.3.4.何时需要同步 (61)27.3.5.线程安全类 (61)27.3.6.线程死锁 (62)27.3.7.线程同步小结 (63)27.4.线程的交互 (64)27.4.1.线程交互的基础知识 (64)27.4.2.多个线程在等待一个对象锁时候使用notifyAll() (66)27.5.守护线程(后台服务线程) (67)27.6.并发协作-生产者消费者模型 (68)27.7.volatile关键字 (68)28.网络编程 (69)28.1.TCP Socket编程 (69)28.1.1.ServerSocket (70)28.1.2.Socket (70)28.2.UDP Socket编程 (71)28.2.1.DatagramSocket (71)28.2.2.DatagramPacket (71)1.原码、反码、补码1.1. 原码将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示)。
Java基础知识笔记(含代码举例)

Java基础知识笔记(含代码举例)⽂章同步:知乎:简书:博客园:⼀、注释、标识符、关键字注释平时我们写的代码量较⼩时,可以看的懂。
但是⼀旦结构复杂起来,我们就需要注释了注释平不会被执⾏,是给我们程序员看的书写注释是⼀个⾮常好的习惯java中有三种注释:单⾏注释 // 注释部分多⾏注释 /* 注释部分*/⽂档注释//有趣的代码注释:/*_(\_/),((((^`\(((( (6 \,((((( , \,,,_ ,((((( /"._ ,`,((((\\ ,... ,(((( / `-.-'))) ;' `"'"'""(((( (((( / ((( \)) | |(( | . ' |)) \ _ ' `t ,.')( | y;- -,-""'"-.\ \/) / ./ ) / `\ \|./ ( ( / /'|| \\ //'||| \\ _//'|||| )) |_/ ||\_\ |_/ ||`'" \_\`'"*/关键字abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。
Java笔记

第一章一节JDK 是开发工具箱Api接口固定的一些搭配语法做编程不是用最新的是最稳定的JAVA特点每年都考大概随机四条Java面向对象特性:先写上对象之后描写对象之间的关系对象的特征行为?(对象都有行为静态的物体平时也有振幅频率高振幅小)(java)是能够实现对象(的系统)所以是面向对象的书上的有些概念要深刻理解二节,运行Java程序过程1.先编译Java2.JDK中的javac负责把源代码(.java)转换为字节码(.class)3.编译后在虚拟机上执行API是应用接口(找文件执行的一种的方式途径)源文件中应用端口(路径)在编译后.class 文件中直接变成可实现的功能(代码)扩展:HTML语言是标签语言Java可以自定义标签功能(有错误就截屏截屏后用飞Q传到控制台)设置Path 基本命令编译完成后不能直接打JAVA 还得加上运行程序的其他资源java classpath d:/ 文件名d/后必须有空格因为在D盘的根目录下文件要调用得用空格表示在那里能运行成功条件1。
文件名类名必须相同 2. 固定语句(第二个花括号以前的句子重要要考)类中得有方法才能相同方法名字叫MAIN 至少有个MAIN方法程序运行的时候只运行MAIN方法其他方法在MAIN中设置连接字符编码:Java 16位的Unicode编码一个汉字占两位16个字节字符常量:单引号是字符字符只有一个字母(符号)显示字符串:双引号看到的所有单词都是标识符关键词:固定功能的标识符命名规则:P20 不能与关键词冲突判断合法标识符是容易出的题int:整形“int ia=5; ”此句意思为:定义ia文件为整型、short:短型long:长整型double:是赋小数值的double da;double da=5.5double da=10.1 虽然赋连个值但是默认值是最后一个float: 如float a=10.6f 赋值后必须加f boolean: 只能有两种值true false第三章算术运算符算术加减时得出数要注意选择正确的字符类型Int ia=5; ia%2=1 %是求余数意思是整形的ia 值是5 之后除2的余数等于11.同一级别的判断方法:数括号两个完整句若是括号数相同就是同一级别(级别划分就和文件夹放文件一样就是同一文件目录下的文件是一个级别的)2.起名的时候要满足标识符的定义3.全局变量(属性变量)和局部变量意思汉字一个文件中包涵属性变量和方法4.[ ] 是数组例子:1.double[] da 定义一个double类型数组的叫da“+”是字符串的拼接例如:”ab”+”cd”显示为”abcd”“ab”+5.8显示为”ab5.8”给一个变量赋值的时候只能用数字不能直接打π例如:double 2.PI=3.141926 是正确的不能是double PI=π定义类名(点击右键创建class 就是类)时首字母大写变量是小写Sting[] args 是参数变量: args是变量名扩展:为什么创建一个Java project 有一些不知道干什么的东西(JRE):因为那是JAVA运行环境要调用虚拟机中的一些基本功能属性变量局部变量类中包括属性变量方法三月二十四日工具栏中Window-→resetperspective (恢复窗口布局)强制类型转换(是高精度向低精度转换)例题:1.Int ia;Double da=2.5Ia=da; 是错误的Ia=(int)da 小数点去掉这是正确的强制类型转换延伸:随机数阿克斯马数?任意一个字母可以转换一个十进位的数2.X+=8 的意思是x=x+8++x 的意思是x=x+1---x 的意思是x=x-13.Intx=5;X++; 和(++x;)如果是单独语句不参与运算的话是一个意思(在原先值的基础上+1)单独的语句的话符号在前在后是一样的都等于6但若是Int c=5+x++;c就等于10 因为后置++先不参加临近运算计算时值仍是5扩展:定义多条语句可用逗号分开int ia =3, ib; 意义等于int ia=3; int ib(定义一个int类型变量ia等于3 再定义个变量ib类型为int)1.Int ic=ia+ib++; 正确意思是ib和ic相加之后ib给自己再赋值2.Int ic=ia+++ib; ia++ +ib 多个符号出现的时候靠前不靠后3.Int ic=++ia+ib; 前置和后置的区别如果是单独语句无区别参与运算的话前置的话先自增减后运算后置的话先运算(给自己赋值)后运算<= 小于等于≤结果:只显示对错>=大于等于≥==等于=!=不等于≠=是赋值== 是比较等于可能是对或者是错逻辑运算:连接条件之间的关系结果也只有两个正确或者错!非&& 与|| 或shift+回车上面那个键^ 异或shift+6Int a,b;a>5&&b<5 用“与”所连接的两个都要成立才是成立的!非所对的是一个元素& |例:int a=5; int b=5;a>5&&++b<5 ; 这时候b还是5 因为电脑计算时计算到a>5时已经判断整句结果是为F ++b 没有运算a>5&++b<5 这时候b是6 就算前句不成立也会把后面的赋值计算上扩展:运行按钮点向下拉按钮可选择java文件直接点击默认运行第一个包名字习惯小写Public static void main(String[] args)//args 可以随便更改因为是文件名{}扩展:/t 在编程语句中表示一个tab(大约三个空格)远的空格三月二十四日3/6*5=0因为3 6 都是整形除完之后是0.5 直接不被舍弃变成0了而3.0/6*5=2.5 3.0 带小数的话默认为double类型不带.0的话默认为int 小数会被舍弃只去整数只要有一个是运算中有一个double类型结果默认是double类型题:(a++)+(++b)+a*b=30首先要做这个题要记住运算等级(编程时尽量避免这种情况)在a*b时ab都已经被重新赋值扩展:括号会提升运算级但是不会改变后置变量与它想接的运算此题++b(等于8)先算之后(a++)+b(等于9)之后a++(等于3)之后a*b (此时ab已经被重新赋值)最后相加4.Int c=’A’;C被赋值为A 键盘上的每个字符都会用十进制数表示当用’’圈住时代表一个字符而不是数字比如intc=’5’; 显示的话就是53为什么要用拼接因为变量值不用拼接无法打出多个值的输出得用拼接显示才明确2>1? 3:4 (本身是个运算式) 如果是正确是3 错误等于4三月二十八日2>1? 3:4 如果2>1成立取“3”位置的值如果出现一个字符串再出现+ 就是拼接意思如“D f”+34+12在屏幕上显示的话就是Df34123=4;不可能出现这种情况因为等号左边一定是个变量而设置变量名是有规则的首位不能是数字;类名首字母大写(每个单词的首字母大写)包名小写?变量的名字第一个字母是小写byteGet 如果多个单词组合以后每个单词的首字母大写先要定义包如com.g206.d23 点后面是下级文件夹Main方法要缩进定义一个常量(变量值不变)类型前要加final 如final double变量名要全大写final double PI程序基本流程顺序结构(从前到后)选择结构(选择结构)循环结构(避免死循环)流程控制语句1.条件语句If if—elseSwitch2.循环语句嵌套if(f==1){System.out.println("f=1");一定要双等号因为if后面跟的是布耳判断变量三月三十日Switch 的表达式只能是整型(byte short int long 等表示整数的类型 int最常用)或者是char(字符类型)类型Case后面得打空格且后面的值类型得是一样的每个case后面的break 的意思如果case语句符合要求程序只运行完这句就结束例子:public class s {public static void main (String[] arges){int a=2;switch(a){case 1:System.out.println("李鹏泽大傻子");break;case 2:System.out.println("李鹏泽大傻子2"); break;case 3:System.out.println("李鹏泽大傻子3"); break;case 4:System.out.println("李鹏泽大傻子4");break;default:System.out.println("不合法");}}}屏幕上只显示“李鹏泽大傻子2”如果没有break 从符合条件的case开始下面的也一起执行若只有case 3后加上break执行的是case2 和case3Default 和 break 是根据自己想要的效果添加的Case只能是具体的值区间的判断的话用if else 比较好而且只运行一种结果还可以用逻辑连接词扩展:Int sum =0,num=0;While(num<=100){Sum =sum+num;Num++;}求1到100每个数的值int sum=0,i=1;while(i<=100){if(i%2==0){sum+=i;}i++;}System.out.println("sum="+sum);求1到100偶数的值现要求用if语句取余的方法求偶数合四月六号For循环如果循环条件省略,就意味着条件为真For(;;){}本身就是个病毒不断循环占内存到死机面对对象的语言面对对象特征1、封装2、继承3、多态(同样是一个名字所干的事情是不一样的)4、抽象(多个类- 共同的行为叫行为)四月十三我们只可以写类不能写对象一个程序只有一个主类(包含main方法的类)系统运行的时候只有对象没有类谁调用这个方法就返回给谁(主要是看方法体里有没有想要的功能)四月十四类能运行:1、类名相同2、必须有main方法要使用辅助类要在主类的主方法生成辅助类的对象系统中起作用的全部都是对象那么主类呢?1、在Java虚拟机中默认把文件名字生成类名设置成对象2、自动调用main放法构造方法用类生成对象(构造方法写在main方法里)关键字“new”new Circle() 关键字不能定义成变量New 后面要考的1.调用构造方法生成对象2.为新的对象申请内存空间Cob保存对象在内存中的首地址Circle类生成Circle类型的对象而存地址得保证等号左右两边类型一致我们自己定义的类也是种类型~Circle cob=new Circle()Cob.setR(100);// 是调用setR方法Cob.findArea();//算出值Double myArea=cob.findArea();System.out.println()对象里可以包含对象四月十八号不是所有辅助类都是被直接调用还可能是间接调用Circle cob = new Circle(); //生成circle类中的对象Cob.setR(100); //通过对象保存首地址调用cob对象中的方法一个方法的实现应该是输入任何一个值都能执行的而不是一个单独的方法Double myArea=cob.findArea();………………要学会模块化构造方法方法名和类名相同自己定义的类也是种类型创建对象的语法:类名对象名= new类名();//构造方法调用对象名.属性名//调用时是调用当前属性的值对象名.方法名()当参数列表为空时是默认构造方法构造方法只能用new在创建对象时被调用修改和获取Public void setBrand(String bd){//修改Brand=bd}Public String getBrand(){//获取Return brand}四月二十日带参数的方法创造的对象(懂得生存规则会变得胆小)调用带参的方法属性值默认为定制参数参数的类型应该和要修改的属性类型一样四月二十四无参数的构造方法Notebook HP1=new Notebook(); HP1里面有两个属性六个方法—---辅助类里的都有HP1.setStatus(3); 调用时setStatus在内存的首地址里HP1.setBrand("HP");Notebook.HP=new.Notebook();String bd=HP.getBrant(); 返回System.ou.println(“属性brand的值”+bd)有参数的直接调用Notebook HP1=new Notebook(HP,3);无参构造方法(默认构造方法)你不写也默认有一个(但是当你创建一个构造方法的时候就会把默认的顶掉)有参的必须自己打Notebook sb=New notebook(“sfadfasf”,34); 改变的是生成对象中的值并不是改辅助类中的值每次调用生成的方法都会成一个对象内存空间Notebook nb=new Notebook();Nb=new notebook; 此段代码把上一行申请变量的地址占用了上一行申请的内存没有地址无法使用(Java有自动回收内存?)无参有参的的区别:有参的有特征四月二十五终结器:提供垃圾收集器来释放无用对象占用的内存,在销毁对象前调用终结器finalize()方法。
Java笔记
笔记第一章程序设计概述Java简述1.java特点:一次编译,到处运行。
很强的跨平台性。
java源程序(.java)-->java字节码文件(.class)-->在jvm上执行2.环境搭建安装jdk,环境变量设置很重要,不然会出现找不到main函数的。
3..javac.exe 编译器后面必须跟文件名(一个java程序只能有一个public说明的类或者没有,文件名必须和这个public类名相同)4.java.exe 解释器后面必须跟主类名(含有main的类)环境变量我的电脑点右键,选择“属性”—> “高级”,进入环境变量设置,分别设置如下三个环境变量:(1)path变量:使得我们能够在系统中的任何地方运行java应用程序,比如javac、java、javah等等,这就要找到我们安装JDK 的目录,如我们的JDK安装在C:\jdk1.6.0目录下,那么在C:\jdk1.6.0\bin目录下就是我们常用的java应用程序,我们就需要把C:\jdk1.6.0\bin这个目录加到path环境变量里面。
在系统变量里找到path变量,选择—>编辑;(里面已经有很多的变量值,是在变量值的最前面加上C:\jdk1.6.0\bin;) 变量名: path变量值: C:\jdk1.6.0\bin;(2)classpath环境变量:让java解释器知道到哪里去找别人写好的类。
在系统环境变量那一栏中点->新建classpath变量名: classpath变量值: D:\CLASSES(字节码存储的位置)在命令窗口如何运行打包后的程序:javac -d D:\classes *.javaJava 包名.主类名(3)设置JA V A_HOME:一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JA V A_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JA V A_HOME%即可, 避免每次引用都输入很长的路径串;二则是归一原则, 当JDK路径改变的时候, 仅需更改JA V A_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要是万一没有改全, 某个程序找不到JDK, 系统会导致崩溃!三则是第三方软件会引用约定好的JA V A_HOME变量, 不然, 你不能正常使用该软件.在系统环境变量那一栏中点->新建JA V A_HOME (JA V A_HOME指向的是JDK的安装路径)变量名:JA V A_HOME变量值:C:\jdk1.6.0Java程序中:(1)一个程序有多个类组成,只有一个公共类。
java笔记
new关键字一出现,便产生新对象,即在堆内存中开辟新的空间在开发过程中所有的字符串比较都必须为如下格式:字符串.equals(String对象)1.面向对象:1)特性:●封装性:内部的操作对外部而言不可见;●继承性:在上一层的基础上继续发展;●多态性:最为重要的一个环节,利用多态性才可以得到良好的设计。
2)开发的三个阶段:●OOA:面向对象分析●OOD:面向对象设计●OOP:面向对象编程3)所有程序的开发原则都离不开实际生活。
面向对象的最大的特征:可以进行生活的抽象。
2.类与对象:●类是引用数据类型,指的是一个共性的概念。
对象指的是一个具体的可以使用的事物。
●类中没有定义的功能,对象无法使用;类的组成:方法、属性●声明并实例化对象:类名对象名= new 类名();●分步进行对象的实例化:1.声明对象:类名对象名= null;2.实例化对象:对象名= new 类名();引用数据类型的最大特征在于内存的分配操作,只要出现了new,那么就代表开辟了一个内存空间,内存空间不是无限的,这个时候所谓的性能调优调整的就是内存问题。
所有的对象只有实例化后才可以使用堆内存空间:保存真正的数据,保存对象的属性信息;栈内存空间:保存的堆内存的地址,堆内存的操作权,保存的是对象名称;对象数据类型(引用数据类型)必须在其开辟内存空间后才可以使用,否则会出现NullPointerException【只有引用数据类型(类,数组,接口)才会产生】;3.引用传递分析:同一块堆内存空间可以被不同的栈内存所指向例1.例2.在程序开发过程中,所谓的垃圾空间指的就是没有任何栈内存指向的堆内存空间,所有的垃圾空间将不定期被java垃圾收集器(GC Garbage Collector)进行回收以实现内存空间的释放。
从实际开发来讲,虽然java有GC,但是GC会降低程序的性能,所以在开发中一定要控制好对象的产生数量,即:无用的对象尽可能少产生。
JAVA基础知识笔记大纲 (1)
Java编程基础1.1. Java开发环境搭建JDK与JREJDK(J ava D evelopment K it) Java开发工具,包含开发Java程序的所有组件,包含JRE JRE(J ava R untime E nvironment) Java运行环境,如果要运行Java程序,就需要JRE的支持常用组件:src.zip Java是一门开源的语言,其源代码都在这个压缩包中rt.jar Java的基础核心类库,我们编写Java程序时使用的class都在这个jar包中javac.exe 编译器,将.java源代码编译为.class文件java.exe 虚拟机,运行Java程序的工具jar.exe 将class文件打成jar包的工具javadoc.exe 生成帮助文档的工具环境变量:环境变量是指在操作系统中用来指定操作系统运行环境的一些参数JA V A_HOME:在环境变量中新建JA V A_HOME指定到jdk的安装目录,有些java的安装软件运行会寻找JA V A_HOMEpath:如果想在任意目录下运行一个程序,我们就需要将程序所在的路径配置在path环境变量中。
通常我们会将javac.exe所在目录配置到path中,因为我们需要在任意目录下都能编译Java源文件。
配置完成之后可以在命令行输入javac测试,如果显式帮助信息则是配置成功。
配置:%JA V A_HOME%\bin;classpath:Java虚拟机运行时加载类的路径。
JDK5之后不配置默认为当前目录“.”。
如使用JDK1.4或以下版本时需要人工配置。
暂时不需要配置,默认加载当前目录下的所有class文件。
配置方式:我的电脑鼠标右键点击我的电脑–属性–高级–环境变量找到要修改的变量将其值修改,此种方式永久有效注意配置后检查:编译器版本查看方式:javac –version虚拟机版本查看方式:java –version1.2. HelloWorld编写源代码在电脑磁盘中新建记事本HelloWorld.txt,更改扩展名改为.java,使用记事本在java文件中写入代码。
JAVA笔记大全(非常难得)
JDBCjava -version查看JAVA版本JDBC一套允许Java同一个SQL数据库对话的程序设计接口.JDBC是执行SQL语句的API,其本身是一个产品的商标名.它由一组用Java语言编写的类与接口组成。
JDBC已成为一种供工具/数据库开发者使用的标准API,用户可以用纯Java API来编写数据库应用程序。
使用JDBC可以很容易地把SQL语句传送到任何关系型数据库中。
JDBC是用于将Java程序和关系数据库连接起来的程序接口,通过这个接口,使用户可以将访问请求语句以SQL语句的形式编写出来,然后将该程序接口传送到数据库,结果再由同一个接口返回JDBC力求达到SQL级API,这就意味着JDBC允许用户建立SQL语句,并将其嵌入到Java API 调用中,即为Java定义一个“调用级”(Call-level)的SQL接口JDBC API被描述成一组抽象的Java接口,使得应用程序可以对某个数据库打开连接,执行SQL 语句,并且处理结果。
JDBC是一组由驱动程序实现的Java接口。
驱动程序负责从标准JDBC调用向支持的数据库所要的具体调用转变每个JDBC应用程序(或小程序)至少要有一个JDBC驱动程序,每个驱动程序是针对一种DBMS 的。
但驱动程序不必直接连到数据库JDBC接口分为两个层次,一个是面向程序开发人员的应程序层(JDBC API),开发人员用API 通过SQL调用数据库和取得结果。
另外一个是底层的驱动程序层(JDBC Driver API),处理与具体驱动程序版本的所有通信java.sql包括了所有的JDBC APIjava.sql.DriverManager 负责处理驱动程序的调入并且对产生新的数据库连接提供支持java.sql.Connection 代表对特定数据库的连接java.sql.Statement 代表一个特定的容器,用来对一个特定的数据库执行SQL语句java.sql.ResultSet 控制对一个特定语句行数据的存取其中java.sql.Statement又有两个子类型:java.sql.PreparedStatement 用于执行预编译的SQL语句java.sql.CallableStatement 用于执行对一个数据库内嵌过程的调用JDBC提供了连接数据库的几种方法:直接通信、通过JDBC驱动程序通信、通过ODBC通信(JDBC通过JDBC-ODBC桥与ODBC数据源相连)基本的JDBC数据库访问流程:1.建立数据源:这里所建的数据源是指建立ODBC数据源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章:基于Linux的指令 1.Linux的基础补充 1.指令的基础 提示符% $ # ~表示当前目录 clear 表示清屏 目录(drectory) 登录shell 指用户每次登录系统后自动加载的shell程序 /etc/shells文件记录系统支持的有效登录shell 如何切换shell环境 临时切换:直接执行其他shell程序 更改用户登录shell 修改/etc/passwd文件 远程登录管理工具 命令行远程管理工具:Putty、SecureCRT 用户登录成功后,系统缺省的主提示符, 普通用户为“$”;超级用户root为“#”。 用户退出系统的方法有两种: 1)键入命令:exit 2)在提示符下按Ctrl+D组合键 一般不用telnet,因为是明文传输的。 切换用户 sudo adduser yw2 su – yw2 文件命名规则 1)除了/之外,所有的字符都合法。 2)有些字符最好不用,如空格符、制表符、退格符和字符@#¥&()-等。 3)避免使用.作为普通文件名的第一个字符。 4)大小写敏感。 2.路径 路径: 1.)绝对路径(唯一) 2.)相对路径(无数) 目录: 本目录(当前目录)用 . 表示 父目录(上一级目录)用 .. 表示 进入目录:cd (change director) 例:cd java 就是进入java 目录 查看当前目录 pwd /lost+found:这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。对了,有点 类似于DOS下的.chk文件。 /mnt:这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。存放临时的映射文件系统,我们常把 软驱和光驱挂装在这里的floppy和cdrom子目录下 /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也 就是说,这个目录的内容不在硬盘上而是在内存里.存放存储进程和系统信息. /root:系统管理员,也叫作超级权限者的用户主目录。拥有系统控制的最大权限。 /sbin:s就是SuperUser的意思,也就是说这里存放的是一些系统管理员使用的系统管理程序。存放系统管理程序。
3.ls 指令 ls 列出的信息不仅仅是文件还包括目录(文件夹) ls ../.. 表示列出返回上一级的上一级目录 ls ./ 列出当前大目录 ls -a (--all)显示所有目录或文件 ls -l 显示所在列表里面的信息 ls -al显示所有目录的列表的信息 ls -al / /home显示列表信息 ls -la /etc 说明:1)当有多个选项时,可以写在一起。 2)两个特殊的目录.和..,分别代表当前目录和当前目录的父目录。 3.mkdir 创建目录/文件夹 和删除 rm以及显示文件内容cat touch创建空文件 mkdir创建目录/文件夹 范例:$touch newfile rm 删除文件 rm -r 删除目录 范例:
$rm file3 删除文件file3 $rm -r dir 删除目录dir1 cat 显示文件内容 范例:$cat /etc/issue $cat /etc/services
添加用户 sudo adduser xxx 这样的命令会在home目录下添加一个帐号 sudo useradd xxx 仅仅是添加用户, 不会在home目录添加帐号 删除用户 终端方法:以下用newuser代替想要删除的用户账户 在root用户下:userdel -r newuser 在普通用户下:sudo userdel -r newuser 因为你需要彻底删除用户,所以加上-r的选项,在删除用户的同时一起把这个用户的宿主目录和邮件目录删除。 4.进入vi vi aaa/a.txt 表示进入aaa文件夹创建a.txt i表示按下i进入编辑模式按 Esc退出删除内容按Delete i(insert) a 表示按下a是在原文后边继续编辑 保存退出vi模式按shift:wq! Shift:q!退出不保存 注:移动光标到要删除处按Delete如需继续编辑则按i或a
5.drwxr-xr表示文件目录 r表述读 w 表示写 x执行 – 表示
文件
chmod 改权限 如chmod 777 /home /soft02 drwxrwxrwx 如chmod 777 aaa表示最高权限 d-wxr-xr-x 列chmod 355 aaa表示没有读权限也可以chmod u-w aaa dr-xr-xr-x 列chmod 555 aaa 表示没有写权限也可以chmod u-r aaa drw-rwxrwx 列 chmod 677 表示没有执行权限 chmod u+r aaa 表示增加读权限 ugo u-user 用户 g-group群组 o-other其他 more 查看内容head 从头读十行 tail从尾读十行 head -n 10 a.txt表示显示前10行 内容较大时 空格表示显示全部内容 回车键表示翻页看下一行 IO 标注输出 输出(output)输入(input)
6.cp 复制 cp和移动 查看更多内容
$cp file1 file2 dir1 将文件file1、file2复制到目录dir1 $cp -R dir1 dir2 将dir1下的所有文件及子目录复制到dir2 cp -r表示复制目录
cp -r c d 将c复制到d cp cc/1.txt dd 将cc下1.txt复制到dd下 mv 移动 源 目地 $mv file1 file3
将当前目录下文件file1更名为file3 $mv file2 dir2 将文件file2移动到目录dir2下 ifconfig Ip查询 查看内容 more head tail head 从头自上往下读十行 tail从尾向上读十行 例 head -n
7. ln 链接
硬链接 ln a.txt a.link 查询ls -il ln -s 符号链接 ln -s a.txt a.slink 源文件 硬件 符号链接三个无论谁增加内容其余都随之添加 源文件被删 硬链接不改变 符号链接为空 源文件删除后重建硬链接不变符号链接随之改变
8.进制 n
二进制 --->十进制是2 乘 十进制-->二进制取余从下往上取 十进制----->八进制 除8
9.压缩 gzip 解压缩 gunzip 和tar 将许多文件打包
例gzip e.txt(压缩文件所在地址) tar -cvzf my.tar e.txt e2.txt压缩 解压缩 tar -xvzf my.tar
第二章 数据库 mysql
1.创建数据源和建表 进入数据库指令 mysql –uroot 退出 \q 创建数据库(creat database 数据库名) 使用数据库 (use 数据库名) 删除数据库(drop database 数据库名;) 创建表(creat table 表名) 例creat table 表名 ( name char, ` age int, )
查表 show table; 2. 增删改查
插入数据:insert into 表名 value(‘张三’,20‘’); 增加表解构 alter table 表名 add 字段名 类型; alter table 表名 change 原字段名 新字段名; 修改数据 up date 表名 set 列名=值; 例 up date stu set name=1 where name=2; name=2 不改变 删除表 delete for 表名 降序 desc 升序asc 降序select * from 表 Book order by 根据什么降序 desc Show creat table 表 查看创建的表内容 第三章java的初步学习
1.java的简介 1.java不能直接操作内存地址,但是可以借助c语言操作 2.java用途很广,安卓开发就是基于java的,java还能用于开发桌面应用和开发面向Internet的应用程序
3.Java具有跨平台性质 –-------------------- 一次编译到处运行
4.同时java还具有一下性质: 面向对象 解释型 拥有较好的性能 健壮性 多线程 安全性 5.java编译步骤: 1)写一个java的代码 2)将代码进行编译(javac)生成一个.class字节码文件 3)java运行这个字节码文件(java) 2.java的jdk环境配置 1)右击”我的电脑”---->属性----->高级设置---->环境变量---->系统设置里面可以新建一个环境变量JAVA_HOME---->然后找到安装文件的地址,复制粘贴到里面---->之后在Path最前面加入%JAVA_HOME%\bin之后关闭终端,重新打开终端---->在终端里面分别输入java -version javac javac -version验证设置成功与否 ,发现javac未设置----->再在环境变量里面新建一个CLASSPATH---->还是找到刚刚的地址输入后加个\lib,前面加上 .:\