资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
JAVA 编程基础编程基础课堂笔记详解课堂笔记详解1)课程使用的开发环境: bin:文件中主要是包含我们今后要用到的命令 lib:主要包含 java 开发过程中要用到的 java 包 2)环境变量的配置 如果使用 ecplise 等开发工具,则不配置环境变量也是可以正常使用 jdk 等功能,但是 在 dos 中却使用不了,配置环境变量则可以在 dos 中使用 步骤: 右击我的电脑属性高级环境变量编辑系统变量中的 path(在 path 后面加 上一个“;”号,再将 bin 文件路径 C:Program FilesJavajdk1.6.0_11bin 加上去查 看系统变量中是否有 classpath 变量,如果没有则新建classpath,将“.;C:Program FilesJavajdk1.6.0_11lib” 附加到 classpath 后面确定。 3)在 dos 中运行 java 程序 通过 cd 命令找到 java 文件所在的路径 编译:javac helloworld.java注意此处文件名的大小写要区分 编译完成后会出现一个 helloworld.CLASS 文件 运行:java helloworld不加扩展名,真正运行的是.class 文件 注意:java 文件名字必须与文件中具有 public static void main()类的名字是一样 4) java 虚拟机的作用是将字节码文件解释成机器语言;不同的操作系统平台要安装不同 的 JDK; java 是一种半编译半解释的文件;源文件字节码:编译方式 字节码机器代码:解释方式 5)使 java 的格式优化: source-format:优化文档格式 6)在 dos 中提取 java 文档的信息(提取文档注释的信息) javadoc -d textdoc -version -author helloworld.java 7)当在数字后面加上一个 L 时,则系统会认为它是一个长整形; 同样在一个浮点数后面加上 F/D 系统就会认为它是单精度活或者双精度; 转义字符例如:n是一个字符,同时 Unicode 编码也是一个字符,例如;因此 区分字符和字符串是通过双引号/单引号区分 而不是字符的长度区分。面向对象编程;面向对象编程;1) 在类中有属性和方法,不能将功能性的语句放到类中,只能放到方法中 2) 通过 return 将方法要返回的值返回;同时,return 有立即结束方法的执行,并返回到调 用点。 3)在程序里是看不到对象的,只能通过引用来使用它 在 Human aMan=new Human();中: Human aMan:对引用的声明 New human():对象的创建; 4)未被初始化的引用是不能使用的,编译的时候就会出错;但当一个对象的引用指向的是 空值(null 值) ,在编译的时候是不会出错的,但是在运行的时候会出现错误。 5)Tostring 用法:toString 就是让你重载用以在调用的时候输出你像要输出的信息的, 也就是当打印输出一个对象时,系统自动调用其 toString 方法,打印 的是 toString 方法的返回值。 Public string toString()/重载这个类的 Tostring 方法 Return ”name:”+name+”/自 己想要构建的字符串 toString 的使用 System.out.println(对象引用)/ System.out.println(对象引用.tostring(); 假设对象的名字叫做 car 则: System.out.println(car)或者 System.out.println(car.toString); 6)程序包; 右击 projectnewpackage;同时也可以在一个包下再建立子包;在一个 package 右击新建 package,包的名字的书写:父包的名字.子包的名字; 在一些 java 开发工具中编写程序时,系统会自动给你分配到选择的包中,但用 DOS 书写代码,或者调用存在在包中的 JAVA 文件时,就需要指出所在的包 例如:package mypackage;Public class myclass 若想访问其他包中的类必须将类所在的包的名字: Java.io.fileinputstream.stream/ fileinputstream 包名,stream 类名 也可以使用 import 引入其他的包的类: Import java.io.fileinputstream; 7)堆与栈的区别: Java 的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过 new、newarray、anewarray 和 multianewarray 等指令建立,它们不需要程序代码来显 式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期 也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java 的垃圾收集器会自 动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较 慢。 栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在 栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的 变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。 实例变量(成员变量):直接定义在类中而不属于任何方法。在对象被创建时创建; 存放在堆中 局部变量:在方法中定义的变量和方法中的参数变量;方法执行时创建,方法退出时 释放;存储在栈中 静态变量(static):存放在静态存储区中 8)JAVA 参数的传递: Java 语言中方法的传递采用值传递的规则 在方法中对基本类型参数进行的一切修改都不会影响到方法外的变量;/因为传递的 只是值 方法中对引用类型的修改会影响到引用所指向的值;/例如对对象进行传递,因为对 象为引用类型,所以传递的是对象的地址,则会改变。方法中改变引用变量指向的对象不会影响方法外的引用变量;/即在方法中为引用变 量分配了新的空间时,方法结束,引用变量就会释放空间,并指向调用方法前的空间, 此时方法内的变化不会影响到方法外部。 9) This 的作用: 作为当前类的引用; 例如:robot robot1=new robot(this) ; 将代码中的成员变量与方法中的局部变量区分开(防止歧义) 。 例如:this。Name=NameJAVA 中的运算符:中的运算符:1) 两个整数之间相除的到的结果还是一个整数 5/2=2,其取值是相除后的整数部分。 2) i 的值为 5;表达式(i+)的值为 5,运算完毕 i 的值为 6; 3) =:是赋值运算;=:是比较运算符 对于浮点数进行比较不能用=号,因为浮点数的小数点不一定到第几位,一次采取 F1- F2,左移:最高位补 0; 7)三元运算符: Boolean-exp?express1:express2 8)浮点型文字常量默认为 double 型,而 double 型常量不能赋值给 float 型 Float a=3.14(错) Float a=3.14f(对) 9)表达式的运算至少要用 int 类型Byte b3=b1+b2:error,变量的运算只少要 int 型Byte b3=1+2;正确,因为运算的为常量 整个表达式的中变量的运算向着表达式中最大的类型靠拢,至少应该为 int 型;这是表达 式的自动提升的过称(隐式类型转换) 。 程序的流程控制: 1) switch(整形变量或者整形表达式) 2) 带标号的 break 对于某一个循环做一个标号,break 标号_name 就会跳出这个循环;数组:数组:1) 数组的声明,只是声明了对象的引用,即:若仅仅写 char s;这只是个引用,没有指向 任何空间和有效的数据,是不可使用的;在使用数组的时候需要创建数组对象。 2) 使用关键字 new 创建数组对象,在创建对象时,需要指明数组的大小。在创建对象时,需要指明数组的大小。 数组对象被创数组对象被创 建之后,如果不对其进行赋值,则每个成员都会被默认的初始化为建之后,如果不对其进行赋值,则每个成员都会被默认的初始化为 0 值。值。Char s=new char16; 3)数组的显示初始化:Char s=a,b,c;3)对于数组可以用空来赋值,这时它就不指向任何数据Char s=null;4) 当已经用new为数组创建数组对象后,必须对数组中的每个成员一一赋值。 正确的方式:Int i=new int3; For(int j=0;j500) break;/跳出while(true)循环。cleanTable+;System.out.println(Thread.currentThread().getName()+“擦了第 “+(tableNum+)+“张桌子“); System.out.println(Thread.currentThread().getName() + “一共擦完了“ + cleanTable + “张桌子“); 2)使用同步方法 同步方法使用的锁是this;一个类中如果含有多个同步方法,所有的同步方法是公用同一把锁this Synchronised void method() 需要执行同步的代码生产者消费者问题 Wait():它所占用的资源就会释放 Notify():调用notify可以唤醒正在wait的线程,如果没有等待的线程,那么它就是调用 一次,不做其他的操作。 为了共享缓冲区需要在外部创建缓冲区对象,并将着一个对象传递给两个线程 只有两个线程共享同一个资源时,才能用wait notify调用Java网络编程 Javaweb编程的区别InetAddress是一个封装网络服务器信息的类 Serversocket:表示服务器对象 2)工作过程: 当客户端socket1向服务器发出请求时,服务器就会在服务器上生成一个socket11对象, 之后socket11就会与socket1进行通信,提供服务。服务器就会继续等待其他客户端的请 求。 3)简单的客户端服务程 端口号1024 65535
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号