摘要:
网络与分布式集群系统的区别:每个节点都是一台计算机,而不是各种计算机内部的功能设备。 Ip:具有全球唯一性,相对于internet,IP为逻辑地址。 端口(port):一台PC中可以有65536个端口,进程通过端口交换数据。连线的时候需要输入IP也需要输入端口信息。 计算机通信实际上的主机之间的进程 阅读全文
posted @ 2019-04-21 10:43
Borter
阅读(1054)
评论(0)
推荐(0)
摘要:
UDP编程: DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。 DatagramPacket(信件):数据包,是UDP下进行传输数据的单位,数据存放在字节数组中。 UDP也需要现有Server端,然后再有Client端。 两端都是 阅读全文
posted @ 2019-04-21 10:43
Borter
阅读(366)
评论(0)
推荐(0)
摘要:
字节输入流:io包中的InputStream为所有字节输入流的父类。 Int read();读入一个字节(每次一个); 可先使用new byte[]=数组,调用read(byte[] b) read (byte[])返回值可以表示有效数;read (byte[])返回值为-1表示结束。 字节输出流: 阅读全文
posted @ 2019-04-21 10:42
Borter
阅读(1531)
评论(0)
推荐(0)
摘要:
class ObjectOutputStream也是过滤流,使节点流直接获得输出对象。 最有用的方法:WriteObject(Object b) 用流传输对象称为对象的序列化,但并不使所有的对象都可以进行序列化的。只有在实现类时必须实现一个接口:IO包下的Serializable(可序列化的)。此接 阅读全文
posted @ 2019-04-21 10:42
Borter
阅读(379)
评论(0)
推荐(0)
摘要:
List():显示文件的名(相对路径) ListFiles():返回Files类型数组,可以用getName()来访问到文件名。 使用isDirectory()和isFile()来判断究竟是文件还是目录。 练习: 写一个javaTest程序,列出所有目录下的*.java文件,把子目录下的JAVA文件 阅读全文
posted @ 2019-04-21 10:41
Borter
阅读(812)
评论(0)
推荐(0)
摘要:
练习: ① 存车位的停开车的次序输出问题; ② 写两个线程,一个线程打印1-52,另一个线程答应字母A-Z。打印顺序为12A34B56C……5152Z。通过使用线程之间的通信协调关系。 注:分别给两个对象构造一个对象o,数字每打印两个或字母每打印一个就执行o.wait()。在o.wait()之前不要 阅读全文
posted @ 2019-04-21 10:40
Borter
阅读(122)
评论(0)
推荐(0)
摘要:
Module 10:I/O流(java如何实现与外界数据的交流) Input/Output:指跨越出了JVM的边界,与外界数据的源头或者目标数据源进行数据交换。 输出 输入 注意:输入/输出是针对JVM而言。 File类(java.io.*)可表示一个文件,也有可能是一个目录(在JAVA中文件和目录 阅读全文
posted @ 2019-04-21 10:40
Borter
阅读(207)
评论(0)
推荐(0)
摘要:
线程因为未拿到锁标记而发生的阻塞不同于前面五个基本状态中的阻塞,称为锁池。 每个对象都有自己的一个锁池的空间,用于放置等待运行的线程。 这些线程中哪个线程拿到锁标记由系统决定。 锁标记如果过多,就会出现线程等待其他线程释放锁标记,而又都不释放自己的锁标记供其他线程运行的状况。就是死锁。 死锁的问题通 阅读全文
posted @ 2019-04-21 10:39
Borter
阅读(265)
评论(0)
推荐(0)
摘要:
释放锁标记只有在Synchronized代码结束或者调用wait()。 注意锁标记是自己不会自动释放,必须有通知。 注意在程序中判定一个条件是否成立时要注意使用WHILE要比使用IF要严密。 WHILE会放置程序饶过判断条件而造成越界。 补充知识: suspend()是将一个运行时状态进入阻塞状态( 阅读全文
posted @ 2019-04-21 10:39
Borter
阅读(567)
评论(0)
推荐(0)
摘要:
第二种方式: Class MyThread implements Runnable{ Public void run(){ Runnable target=new MyThread(); Thread t3=new Thread(target); Thread.start();//启动线程 } } 阅读全文
posted @ 2019-04-21 10:38
Borter
阅读(413)
评论(0)
推荐(0)
摘要:
下午: 程序员需要关注的线程同步和互斥的问题。 多线程的并发一般不是程序员决定,而是由容器决定。 多线程出现故障的原因: 两个线程同时访问一个数据资源(临界资源),形成数据发生不一致和不完整。 数据的不一致往往是因为一个线程中的两个关联的操作只完成了一步。 避免以上的问题可采用对数据进行加锁的方法 阅读全文
posted @ 2019-04-21 10:38
Borter
阅读(294)
评论(0)
推荐(0)
摘要:
多线程 进程:任务 任务并发执行是一个宏观概念,微观上是串行的。 进程的调度是有OS负责的(有的系统为独占式,有的系统为共享式,根据重要性,进程有优先级)。 由OS将时间分为若干个时间片。 JAVA在语言级支持多线程。 分配时间的仍然是OS。 参看P377 线程由两种实现方式: 第一种方式: cla 阅读全文
posted @ 2019-04-21 10:37
Borter
阅读(573)
评论(0)
推荐(0)
摘要:
Module 11 Swing AWT是Java最早出现的图形界面,但很快就被Swing所取代。 Swing才是一种真正的图形开发。 AWT在不同平台所出现的界面可能有所不同:因为每个OS都有自己的UI组件库,java调用不同系统的UI。 注意AWT为重量级组件,相当消耗资源,且不同系统的组件可能不 阅读全文
posted @ 2019-04-21 10:36
Borter
阅读(440)
评论(0)
推荐(0)
摘要:
我们在学习JDBC的时候会过度到J2EE。 在Swing的组件中,基本上都是在AWT组件的名称前面加“J”。 一般情况下,除了Choise等组件: import javax.swing.*;好要加上:import java.awt.*以及import java.awt.event.*。 Swing与 阅读全文
posted @ 2019-04-21 10:36
Borter
阅读(115)
评论(0)
推荐(0)
摘要:
Swing与AWT在事件模型处理上是一致的。 Jframe实际上是一堆窗体的叠加。 Swing比AWT更加复杂且灵活。 在JDK1.4中,给JFRAME添加Button不可用jf.add(b)。而是使用jf.getContentPane().add(b)。 content是先申请面板。不过在JDK1 阅读全文
posted @ 2019-04-21 10:36
Borter
阅读(298)
评论(0)
推荐(0)
摘要:
事件模式的实现步骤: 开发事件对象(事件发送者)——接口——接口实现类——设置监听对象 一定要理解透彻Gril.java程序。 重点:学会处理对一个事件源有多个事件的监听器(在发送消息时监听器收到消息的排名不分先后)。 事件监听的响应顺序是不分先后的,不是谁先注册谁就先响应。 事件监听由两个部分组成 阅读全文
posted @ 2019-04-21 10:35
Borter
阅读(642)
评论(0)
推荐(0)
摘要:
Module 10 Canvas组件:画布,可以实现动画操作。 TextArea:文本域。 在单行文本域中回车会激发ActionEvent。 用CheckBoxGroup实现单选框功能。 Java中,单选框和复选框都是使用CheckBox实现。 菜单:new MenuBar(),MenuBar表示菜 阅读全文
posted @ 2019-04-21 10:35
Borter
阅读(277)
评论(0)
推荐(0)
摘要:
经验之谈:Swing的开发工作会非常的累,而且这项技术正在走向没落。避免从事有这种特征的工作。 AWT也即将被取代。 Module8—Module11所使用的技术都将被JSF技术所取代。 JSF是服务器端的Swing:目前技术已经成熟,但是开发环境(工具)还不成熟。 Module12的Applet技 阅读全文
posted @ 2019-04-21 10:34
Borter
阅读(627)
评论(0)
推荐(1)
摘要:
五种布局管理器: P206:Flow Layout(流式布局):按照组件添加到容器中的顺序,顺序排放组件位置。默认为水平排列,如果越界那么会向下排列。排列的位置随着容器大小的改变而改变。 Panel默认的布局管理器为Flow Layout。 Border Layout:会将容器非常五个区域:东西南北 阅读全文
posted @ 2019-04-21 10:34
Borter
阅读(672)
评论(0)
推荐(0)
摘要:
在java.util中有EventListener接口:所有事件监听者都要实现这个接口。 java.util中有EventObject类:所有的事件都为其子类。 事件范例在\CoreJava\Girl.java文件中。(文件已加注释) 注意:接口因对不同的事件监听器对其处理可能不同,所以只能建立监听 阅读全文
posted @ 2019-04-21 10:34
Borter
阅读(2684)
评论(0)
推荐(0)
摘要:
使用HashMap(),如果使用自定义类,一定要覆盖HashCode()和equals()。 重点掌握集合的四种操作:增加、删除、遍历、排序。 Module8—12利用两天的时间完成。 Module8:图形界面 Module9:事件模型(在本部分最重要) Module10:AWT Module11: 阅读全文
posted @ 2019-04-21 10:33
Borter
阅读(267)
评论(0)
推荐(0)
摘要:
SortedSet可自动为元素排序。 SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序。 练习:自定义类用TreeSet排序。 与HashSet不同,TreeSet并不需要实现HashCode()和equals()。 只要实现compareable和comp 阅读全文
posted @ 2019-04-21 10:30
Borter
阅读(772)
评论(0)
推荐(0)
摘要:
Key值既然可以作为对象,那么也可以用一个自定义的类。比如: m.put(new sutdent(“Liucy”,30),”boss”) 如果没有语句来判定Student类对象是否相同,则会全部打印出来。 当我们用自定义的类对象作为key时,我们必须在程序中覆盖HashCode()和equals() 阅读全文
posted @ 2019-04-21 10:30
Borter
阅读(350)
评论(0)
推荐(0)
摘要:
添加知识点: 集合对象存放的是一系列对象的引用。 例: Student S Al.add(s); s.setName(“lucy”); Student s2=(Student)(al.get(o1)); 可知s2也是s。 阅读全文
posted @ 2019-04-21 10:29
Borter
阅读(166)
评论(0)
推荐(0)
摘要:
Set-HashSet实现类: 遍历一个Set的方法只有一个:迭代器(interator)。 HashSet中元素是无序的(这个无序指的是数据的添加顺序和后来的排列顺序不同),而且元素不可重复。 在Object中除了有final(),toString(),equals(),还有hashCode()。 阅读全文
posted @ 2019-04-21 10:28
Borter
阅读(1324)
评论(0)
推荐(0)
摘要:
集合的最大缺点是无法进行类型判定(这个缺点在JAVA1.5中已经解决),这样就可能出现因为类型不同而出现类型错误。 解决的方法是添加类型的判断。 LinkedList接口(在代码的使用过程中和ArrayList没有什么区别) ArrayList底层是object数组,所以ArrayList具有数组的 阅读全文
posted @ 2019-04-21 10:21
Borter
阅读(220)
评论(0)
推荐(0)
摘要:
LinkedList提供以下方法:(ArrayList无此类方法) addFirst(); removeFirst(); addLast(); removeLast(); 在堆栈中,push为入栈操作,pop为出栈操作。 Push用addFirst();pop用removeFirst(),实现后进先 阅读全文
posted @ 2019-04-21 10:21
Borter
阅读(500)
评论(0)
推荐(0)
摘要:
成员内部类不可以有静态属性。(为什么?) 如果在外部类的外部访问内部类,使用out.inner. 建立内部类对象时应注意: 在外部类的内部可以直接使用inner s=new inner();(因为外部类知道inner是哪个类,所以可以生成对象。) 而在外部类的外部,要生成(new)一个内部类对象,需 阅读全文
posted @ 2019-04-21 10:20
Borter
阅读(3237)
评论(1)
推荐(0)
摘要:
集合(从本部分开始涉及API) 集合是指一个对象容纳了多个对象,这个集合对象主要用来管理维护一系列相似的对象。 数组就是一种对象。(练习:如何编写一个数组程序,并进行遍历。) java.util.*定义了一系列的接口和类,告诉我们用什么类NEW出一个对象,可以进行超越数组的操作。 (注:JAVA1. 阅读全文
posted @ 2019-04-21 10:20
Borter
阅读(166)
评论(0)
推荐(0)
摘要:
以下介绍接口: List接口:(介绍其下的两个实现类:ArrayList和LinkedList) ArrayList和数组非常类似,其底层①也用数组组织数据,ArrayList是动态可变数组。 ① 底层:指存储格式。说明ArrayList对象都是存在于数组中。 注:数组和集合都是从下标0开始。 Ar 阅读全文
posted @ 2019-04-21 10:20
Borter
阅读(1353)
评论(0)
推荐(0)
摘要:
封装类: JAVA为每一个简单数据类型提供了一个封装类,使每个简单数据类型可以被Object来装载。 除了int和char,其余类型首字母大写即成封装类。 转换字符的方式: int I=10; String s=I+” ”; String s1=String.valueOf(i); Int I=10 阅读全文
posted @ 2019-04-21 10:19
Borter
阅读(199)
评论(0)
推荐(0)
摘要:
内部类: (注:所有使用内部类的地方都可以不用内部类,使用内部类可以使程序更加的简洁,便于命名规范和划分层次结构)。 内部类是指在一个外部类的内部再定义一个类。 内部类作为外部类的一个成员,并且依附于外部类而存在的。 内部类可为静态,可用PROTECTED和PRIVATE修饰。(而外部类不可以:外部 阅读全文
posted @ 2019-04-21 10:19
Borter
阅读(927)
评论(0)
推荐(0)
摘要:
以下介绍的三种方法属于Object: (1) finalize方法:当一个对象被垃圾回收的时候调用的方法。 (2) toString():是利用字符串来表示对象。 当我们直接打印定义的对象的时候,隐含的是打印toString()的返回值。 可以通过子类作为一个toString()来覆盖父类的toSt 阅读全文
posted @ 2019-04-21 10:18
Borter
阅读(388)
评论(0)
推荐(0)
摘要:
类必须实现接口中的方法,否则其为一抽象类。 实现中接口和类相同。 接口中可不写public,但在子类中实现接口的过程中public不可省。 (如果剩去public则在编译的时候提示出错:对象无法从接口中实现方法。) 注: ① 一个类除继承另外一个类,还可以实现接口; class IAImpl ext 阅读全文
posted @ 2019-04-21 10:17
Borter
阅读(192)
评论(0)
推荐(0)
摘要:
接口往往被我们定义成一类XX的东西。 接口实际上是定义一个规范、标准。 ① 通过接口可以实现不同层次、不同体系对象的共同属性; 通过接口实现write once as anywhere. 以JAVA数据库连接为例子:JDBC制定标准;数据厂商实现标准;用户使用标准。 接口通常用来屏蔽底层的差异。 ② 阅读全文
posted @ 2019-04-21 10:17
Borter
阅读(2697)
评论(0)
推荐(0)
摘要:
接口与类属于同一层次,实际上,接口是一种特殊的抽象类。 如: interface IA{ } public interface:公开接口 与类相似,一个文件只能有一个public接口,且与文件名相同。 在一个文件中不可同时定义一个public接口和一个public类。 一个接口中,所有方法为公开、抽 阅读全文
posted @ 2019-04-21 10:16
Borter
阅读(182)
评论(0)
推荐(0)
摘要:
常量(这里的常量指的是实例常量:即成员变量)赋值: ①在初始化的时候通过显式声明赋值。Final int x=3; ②在构造的时候赋值。 局部变量可以随时赋值。 利用final定义方法:这样的方法为一个不可覆盖的方法。 Public final void print(){}; 为了保证方法的一致性( 阅读全文
posted @ 2019-04-21 10:15
Borter
阅读(1598)
评论(0)
推荐(0)
摘要:
静态方法不可被覆盖。(允许在子类中定义同名静态方法,但是没有多态,严格的讲,方法间没有多态就不能称为覆盖) 当static修饰代码块时(注:此代码块要在此类的任何一个方法之外),那么这个代码块在代码被装载进虚拟机生成对象的时候可被装载一次,以后再也不执行了。 一般静态代码块被用来初始化静态成员。 S 阅读全文
posted @ 2019-04-21 10:14
Borter
阅读(251)
评论(0)
推荐(0)
摘要:
当用final修饰类的时候,此类不可被继承,即final类没有子类。这样可以用final保证用户调用时动作的一致性,可以防止子类覆盖情况的发生。 当利用final修饰一个属性(变量)的时候,此时的属性成为常量。 JAVA利用final定义常量(注意在JAVA命名规范中常量需要全部字母都大写): Fi 阅读全文
posted @ 2019-04-21 10:14
Borter
阅读(3297)
评论(0)
推荐(0)
摘要:
1、 对象不变;(改变的是主观认识) 2、 对于对象的调用只能限于编译时类型的方法,如调用运行时类型方法报错。 在上面的例子中:Animal a=new Dog();对象a的编译时类型为Animal,运行时类型为dog。 注意:编译时类型一定要为运行时类型的父类(或者同类型)。 对于语句:Dog d 阅读全文
posted @ 2019-04-21 10:13
Borter
阅读(570)
评论(0)
推荐(0)
摘要:
运行时的动态类型判定针对的是方法。运行程序访问的属性仍为编译时属性。 Overloading针对的是编译时类型,不存在运行时的多态。 习题:建立一个shape类,有circle和rect子类。 Shape类有zhouchang()和area()两种方法。 (正方形)squ为rect子类,rect有c 阅读全文
posted @ 2019-04-21 10:13
Borter
阅读(198)
评论(0)
推荐(0)
摘要:
面向对象高级: 修饰符: static:①可修饰变量(属性);②可修饰方法;③可修饰代码块。 Static int data语句说明data为类变量,为一个类的共享变量,属于整个类。 Int data为实例变量。 例: static int data; m1.data=0; m1.data++的结果 阅读全文
posted @ 2019-04-21 10:13
Borter
阅读(2400)
评论(0)
推荐(0)
摘要:
思考:可是如果我们没有定义无参的构造方法,而在程序中构造了有参的构造方法,那么如果方法中没有参数,那么系统还会调用有参的构造方法么?应该不会。 多态:多态指的是编译时类型变化,而运行时类型不变。 多态分两种: ① 编译时多态:编译时动态重载; ② 运行时多态:指一个对象可以具有多个类型。 对象是客观 阅读全文
posted @ 2019-04-21 10:12
Borter
阅读(207)
评论(0)
推荐(0)
摘要:
Public表示该属性(方法)公开; (想用private还要用set和get方法供其他方法调用,这样可以保证对属性的访问方式统一,并且便于维护访问权限以及属性数据合法性) 如果没有特殊情况,属性一定私有,方法该公开的公开。 如果不指明谁调用方法,则默认为this。 区分实例变量和局部变量时一定要写 阅读全文
posted @ 2019-04-21 10:11
Borter
阅读(1295)
评论(0)
推荐(0)
摘要:
继承: 父类(SuperClass)和子类(SonClass)。 父类的非私有化属性和方法可以默认继承到子类。 Class Son extends Father{ } 而如果父类中的私有方法被子类调用的话,则编译报错。 如果子类访问父类的构造方法,则在编译的时候提示访问不到该方法。 JAVA中不允许 阅读全文
posted @ 2019-04-21 10:11
Borter
阅读(1061)
评论(0)
推荐(0)
摘要:
父类为public,那么子类为private则出现错误。 之所以构造方法先运行父类再运行子类是因为构造方法是无法覆盖的。 以下范围依次由严到宽: private :本类访问; default :表示默认,不仅本类访问,而且是同包可见。 Protected:同包可见+不同包的子类可见 Public : 阅读全文
posted @ 2019-04-21 10:11
Borter
阅读(356)
评论(0)
推荐(0)
摘要:
用类来生成对象的语句: Student s=new Student()。 第一个Student表示这是用Student类进行定义。“Student()”表示调用一个无参数的构造方法。 如果()中有参数,则系统构造对象的过程中调用有参的方法。 此时S称为一个对象变量。 Student s的存储区域存放 阅读全文
posted @ 2019-04-21 10:10
Borter
阅读(1013)
评论(0)
推荐(0)
摘要:
在有些JAVA书籍中将overriding称为重载,overloading称为过载。 Overloading在一个类中可以定义多个同名方法,各个方法的参数表一定不同。但修饰词可能相同,返回值也可能相同。 在程序的编译过程中根据变量类型来找相应的方法。因此也有人认为 overloading是编译时的多 阅读全文
posted @ 2019-04-21 10:10
Borter
阅读(700)
评论(0)
推荐(0)
摘要:
实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。 可复用性是OOP的基础。 比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 阅读全文
posted @ 2019-04-21 10:09
Borter
阅读(192)
评论(0)
推荐(0)
摘要:
开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能。 从语法上来看,一个类是一个新的数据类型。 在面向对象编程中,除了简单数据类型,就是对象类型。 定义类的格式: class Student{ 代码 } 注意类名中单词的首字母大写。 实例变量:定义在类中但在任何方法之外。(New出来的均有 阅读全文
posted @ 2019-04-21 10:09
Borter
阅读(344)
评论(0)
推荐(0)
摘要:
书写方法的格式: 修饰符 返回值 方法名 调用过程中 方法体 可能出现的例外 public int/void addNumber(参数) throw Excepion {} 例: public int addNumber(int a,int b){ } 注:方法名中的参数int a,int b为局部 阅读全文
posted @ 2019-04-21 10:09
Borter
阅读(514)
评论(0)
推荐(0)
摘要:
所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做什么(方法):告诉外界对象有那些功能。 后者以前者为基础。 大的对象的属性也可以是一个对象。 阅读全文
posted @ 2019-04-21 10:08
Borter
阅读(484)
评论(0)
推荐(0)
摘要:
首先,面向对象符合人类看待事物的一般规律。 对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。 方法的定义非常重要。方法有参数,也可能有返回值。 注意区分:对象(本身)、对象的实现者、对象的调用者。 分析对象主要从方法开始。 我们通过类来看待对象,类是对象的抽象。 阅读全文
posted @ 2019-04-21 10:08
Borter
阅读(172)
评论(0)
推荐(0)
浙公网安备 33010602011771号