JAVA-learning笔记.docx_第1页
JAVA-learning笔记.docx_第2页
JAVA-learning笔记.docx_第3页
JAVA-learning笔记.docx_第4页
JAVA-learning笔记.docx_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 java简介虚拟机:一次编译,多次运行 垃圾收集机制:方便内存申请与释放Javac编译 java运行JDK(J2SDK)编译器,JRE运行环境配置:第二章:基础语法标示符:自己取的名字:字母 _ $关键字:以后一个个的学常量:整型常量,实型常量,字符常量,逻辑常量和字符串常量。变量:先申明再赋值最后使用 局部变量和成员变量 变量作用域:在大括号内申明的变量,出了大括号就没人认识了!数据类型:基本数据类型和引用类型 基本数据类型分4类八种,其他的是引用类型。逻辑boolean(true/false) 字符char 整数类型数据类型转换:容量小的自动转换成大的,大的转换成小的要强制;程序格式 Print打印后不换行 println打印后换行将任何对象先转换为字符串再进行打印运算符:+ - 放前放后 If分支与for循环If语句:if(条件1) System.out.println(“ ”);else if(条件2 )执行elseFor循环 看循环要找规律,找规律看内存!While & do while语句可以是if语句的嵌套使用。Break and continueSwitch 条件语句的补充 Switch (int i ) case j :语句 ; ;default:语句; 注意case穿透,建议使用break! Case合并相当于或者关系; default可以省略方法:java的方法类似于其它语言的函数,形参和局部变量同等对待方法只有通过对象才能调用 涉及new递归调用:就是方法内部对方法本身的调用 例: main方法调用 M(n) M(n)提供两点:一是底数m(1)的值;二是M(n)与下级M(n-1)的递推关系!成员变量作用域为整个类体(在大括号内有效),成员变量可以是基本数据类型也可以是引用数据类型J2SE 面向对象面向过程和面向对象:面向对象的思维,考虑问题应该考虑问题域有哪些类哪些对象,每种类和对象应该具有哪些属性、方法,再考虑类和类之间的关系。Class(类)-对象属性/方法类是静态的,在代码区,对象时NEW出来的,类的每个成员变量在不同的对象中都有不同的值(除了静态变量),而方法只有一份,执行的时候才占内存。关联关系 继承关系 聚合关系(聚集和组合) 实现关系 多态构造方法(函数) NEW“发放的名字 方法的参数 方法的返回值” 构造方法完全 其局部变量消失构造方法和类同名且没有返回值?Class 类 成员变量(静态属性)java可以默认初始化它成员变量在相应对象new出来后存于堆内存 如 int I; double x; float furcolor; 方法 如 void catchmouse (mouse m); m.scream ();.引用:除了基本类型(4类8种)外的变量都是引用重载:方法名一样 参数不一样(类型、个数) 构造方法也可以重载This指向自身变量的引用 值是当前对象的引用可以处理方法中成员变量和参数重名的情况StaticStatic生命的成员变量为静态成员变量(方法就是静态方法),是类中所有对象的共同变量,非静态变量单独属于某个对象不能直接“类.变量=xx”要先new出对象再弄非静态变量 静态变量存放在数据区而不是stack区或heap区 类名大写诶同理,动态方法针对某一个对象应用, 可以通过对象引用或类名(不需要实例化)访问静态 静态变量相对好客 方法直接引用?Package 和 import 约定俗成的用公司域名反写来给包命名Package用于大型 软件的数目众多的类的重名的问题 想要把一个类放在包里面,第一句话写package,package后面想跟多少层包就多少层,编译出来的类必须位于正确目录下面,和我们包的层次完全一致 想在另一类中用我们包里的类,必须把名字写全,或者用import引入,否则以为是裸体类 (访问同一个包里面的类不用import或全名) 执行一个类需要写全包名 涉及classpath 目录位置重要访问控制(权限修饰符)继承 一个子类只能有一个基类,一个基类可以派生多个子类Extends 关键字实现类的继承 class extends 通过继承,子类自动拥有了基类(superclass)的所有成员(全部变量和方法)方法的重写:对继承而来的方法进行重写 重写相当于覆盖掉咯附注:分析程序逻辑从main方法开始走继承中的方法构造子类在自己的构造方法中使用super(argument list)调用基类的构造方法,如调用super,必须写在子类构造方法的第一行 使用this(argument list)调用本类的另外的构造方法;如果子类的构造方法中没有现实的调用基类的构造方法,则系统默认调用系统无参数的构造方法;如果子类构造法方法中既没有显示调用基类构造方法,而基类中又没有无参数的构造方法,则编译出错Object类 是java所有类的根基类TostringHash码 独一无二的代表一个对象 且通过它能找到相应的对象码代码 equals 37 38 39(39包括了猫狗动物那个程序)41对39抽象改进对象转型父类饮用可以指向子类对象 有利于程序扩展性 38可以在一个方法的参数中定义父类的引用 然后实际中传子类对象 然后再判断。多态(动态绑定):面向对象的核心机制 是程序可扩展性达到最好 多态的存在三个必要条件:1,要有继承,2,要有重写;3,父类引用指向子对象 在执行期间,判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。例子中,根据Lady对象的成员变量pet所引用的不同的实际类型而调用相应的enjoy方法。引用类型和实际类型不同。方法重写了,调方法时,实际调哪个就看实际new的是哪个抽象类abstract关键字修饰 含有抽象方法的类也要抽象化,抽象类需被继承 抽象对象无法实例化 抽象类的抽象方法怎么实现自己不知道 让子类去具体实现Final 方法不想被子类重写 类不能被继承 值不能被改变Interface 接口 算是一个抽象类Java只支持单继承,dog extends animal后就不能再继承其他基类了 但实际中有多继承现象和需求,为了包装这个问题便出现接口概念(接口可以多重实现)接口是抽象方法和常量值得定义的集合;本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现接口对于整个实际对象来说,每个接口暴露了对象了某部分方法 一般格式是各种类及其继承/接口,重写。public class xx public static。 new对象。 第三章总结第四章 (运行期)异常处理观察错误的名字和行号最重要 (报错机制) Try被检查的语句 catch (错误类型 ae) System.out.println(“系统维护中。”) ae.printlStackTrace(); getMessage ()异常的概念:Error自己处理不了 exception可以调试的且有的必须去catch 如runtimeexception 可以不逮(catch)它 忽略五个关键字:Try catch finally throw throws先逮小的 再逮大的异常与重写关系暂不处理异常就throw抛 直到有程序try and catch第五章 数组数组在内存里挨着排列,每个列格有系列号一维:一行Type var ; type var;二维:一行一列Int/double/Person/String a1 ; int a1;元素可以是引用数据。 动态初始化:首先分配空间(new)再赋值动态: 静态:int a=3,9,8动态:静态:数组元素的引用 a.length length是属性不是方法编程:11练习9排序算法 冒泡法搜索算法:搜索往往是建立在已经排好序的基础上 二分法 Binarysearch(a,i)二维数组 Int a = 1,2, 2,5,4, 3,4,5,6, Java 中多为数组的声明和初始化应按从高维到地维的顺序进行 如数组的拷贝 arraycopy(原数组,起始位置,目标数组,起始位置,长度)第六章 常用类String 正则表达式基础类型包装类 MathFile 递归Enum 枚举类型 -经常查询API文档第七章 容器:能装对象的各种类的实例 API的java.util中1136:一个图 一个类 三个知识点 六个接口 重写equal方法也要重写hashcode Iterator接口 遍历List容易因为对象有下标,遍历比较方便,直接用for循环增强的for循环For(类型 参数 : 容量)HashsetList接口 是collection的子接口 类似数组如何选择数据结构: Array读快改慢 linked改快读慢 hash两者之间Map接口实现map接口的类用来存储键-值对。 两个对象,一个当做索引当做名字另一个当做值自动打包 auto-boxing泛型:在定义集合的时候同时定义集合中的对象的类型用到集合时尽量用泛型interator/comparable第八章 流 stream java输入输出原理流是java.io包中的类 文件/内存是桶-管道是流(流入流出是以程序为参照) -程序字节流和字符流: inputstream/putputsteam, reader/writer(四个都是节点流)节点流和处理流: 节点是直流,处理流管道经过包装处理(缓冲流buffer)Fileinputstream 程序从文件file中一个一个字节地读取数据缓冲流(处理流):数据流带套:Print流(只有输出流没有输入流)Object流 直接将object写入或读出 第九章 线程线程是一个程序内部的顺序控制流 每一个分支都是一个线程 main是主分支主线程 操作系统支持多线程多进程 Dos只支持单线程Thread类实现java的线程线程的创建 两种方法Extends继承的方法可以直接 m.start 接口thread还得new一个对象才能操作,但继承只能有一个父类不好拓展。线程状态转换及控制Sleep 静态方法 睡眠指定的毫秒数 抛异常 interruptedExceptionJoin 合并线程 Yield 给其他线程执行的机会线程同步:锁定 synchronized 执行某段代码时锁定相应对象 死锁当锁定某个对象后,其他线程不可能访问其方法中的句子 互斥 在某一个时间段保证只有一个线程进入方法体中但不保证其他线程是不是能进入另外方法里面。 两个方法改同一个值,两个都要同步synchronized第11节 生产者和消费者!。第十章 网络编程Ip 独一无二的ip地址TCP 慢但可靠UDP 快但不可靠 路由器可能丢包端口也分TCP和UDP端口,对应某个应用程序TCP/UDP程序的写法 比较固定Server client聊天小项目融会贯通!第十一章 GUI 图形用户接口AWT(abstract window toolkit)Component 和 container布局管理器Flowlayout() Flowlayout f = new flowlayout(flowlayout.center,20,40); f.setlayout(f);Bordlayout

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论