
Java SE 学习笔记
文章平均质量分 74
Sarah_mq
这个作者很懒,什么都没留下…
展开
-
网络数据包捕捉工具jNetPcap学习笔记(一)
Java平台本身不支持底层网络操作,需要第三方包利用JNI封装不同系统的C 库来提供Java的上层接口。常用的类库包括 JPcap,JNetPcap等,他们都是基于TcpDump/LibPcap的Java封装。本文对jNetPcap官网的Tutorial教程做了分析,欢迎大家指正。原创 2016-12-28 22:40:54 · 9972 阅读 · 5 评论 -
【反射】案例讲解:通过反射机制来复制一个对象
Student类,有属性id, name, age, 还有对应的get,set方法和构造方法。 现产生一个Student对象。通过反射复制此Student对象。复制时,并不知道源对象具体的属性名称。原创 2016-12-08 20:54:28 · 2208 阅读 · 0 评论 -
【多线程】线程的生命周期
生命周期的五种状态:新建,就绪,运行,阻塞,死亡原创 2016-12-13 14:07:42 · 481 阅读 · 0 评论 -
【多线程】Java线程模型
程序:安装在磁盘上的一段指令的集合,是静态的。进程:是运行中的程序,是动态的。每个进程有独立的资源空间。线程:又称轻量级进程,是程序执行流的最小单元,是程序中单一的顺序控制流程。线程是进程中的一个实体,是被系统独立调度和分派的基本单位。多线程:在单个程序中,可以同时运行多个不同的线程执行不同的任务原创 2016-12-13 12:02:08 · 354 阅读 · 0 评论 -
【异常】案例讲解:医生给病人看病
案例介绍:工作者在工作过程中可能会生病,医生监控此病人的状态,如发现工作者生病了就给医治。案例设计:1. 创建工作者类,封装相应的属性和方法。工作者是生病的主体,所以由工作者类抛出自定义异常。2. 创建医生类,封装相应的属性和方法。医生医治疾病,可以再医生类里捕获自定义异常。3. 创建自定义异常类,当工作者生病的时候就抛出此自定义异常。原创 2016-12-13 11:28:34 · 1380 阅读 · 0 评论 -
【异常】自定义异常
Java提供的异常体系不可能预见所有希望加以报告的错误:1. 自定义异常类必须从已有的异常类继承2. 自定义异常是不是受查异常(非受查异常)就看父类是不是受查异常(非受查异常)3. 建立新的异常类型最简单的方法就是让编译器产生默认构造方法4. 对异常来说,最重要的部分就是它的类名,抛出后可以通过类名判断发生异常的原因5. 可以为异常类定义一个接收字符串参数的构造方法,字符串参数描述异常信息原创 2016-12-13 11:17:58 · 523 阅读 · 0 评论 -
【异常】异常的概念,分类和处理机制
异常是指程序运行过程中发生的一些不正常事件(如除0溢出,数组下标越界,所要读取的文件不存在) 抛出异常:Java程序的执行过程中如果出现异常事件,可以生成一个异常类对象,该对象封装了异常事件的信息,并将其提交给Java运行系统,这个过程称为抛出异常,不出力的话会直接导致程序中断。设计良好的程序应该在程序异常发生时提供处理这些异常的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果原创 2016-12-13 11:02:55 · 14051 阅读 · 2 评论 -
【集合框架】6. 迭代模式
集合框架6. 迭代模式案例介绍:提供一种方法,访问一个容器对象中的各个元素,而又不暴露该对象的内部细节案例设计:* 迭代器角色(Iterator)* 具体迭代器角色(Concrete Iterator)* 容器角色(Container)* 具体容器角色(Concrete Container)原创 2016-12-04 21:07:52 · 215 阅读 · 0 评论 -
【集合框架】5. Collections类
集合框架5. Collections类注意区分Collection接口,Collection是集合框架里的接口Collections 专门为其他的类服务,服务的对象是类集和Map,它提供了很多静态方法原创 2016-12-04 21:06:31 · 248 阅读 · 0 评论 -
【集合框架】4. Set容器
集合框架4. Set容器4.1 HashSet接口4.2 TreeSet接口原创 2016-12-04 21:05:20 · 197 阅读 · 0 评论 -
【集合框架】3. Map容器
集合框架3. Map容器Map接口: 映射唯一关键字给值Map.Entry接口: 描述映射中的元素,是Map类中的一个子类SortedMap接口: 扩展Map以便关键字按升序排列原创 2016-12-04 21:04:09 · 451 阅读 · 0 评论 -
【反射】JAVA反射机制
反射机制是在运行状态中,对类信息的获取,以及对对象方法的调用机制。在Java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息: - 访问修饰符 - 继承的父类 - 实现的接口 - 属性和方法反射机制还可以操作对象实例: - 创建对象 - 修改对象属性 - 调用对象方法原创 2016-12-08 19:39:19 · 371 阅读 · 0 评论 -
【内部类】内部类的概念及成员内部类
内部类的主要特点内部类可以很好的实现隐藏,使用private,protected关键字。而这些,外部类是不能使用的。内部类可以直接访问外部类的所有成员,包括私有的成员外部类不能直接访问内部类的成员,必须首先要建立内部类的对象才能访问内部类可以解决一些问题,比如间接地实现多继承,可以避免修改接口而实现同一个类中两种同名方法的调用(一般不这么做)原创 2016-12-08 21:14:15 · 506 阅读 · 0 评论 -
【内部类】静态内部类及应用
特点:使用static修饰的成员内部类静态内部类和外部类没有任何关系,只是在生成类名和类定义时有影响静态内部类可以看做是与外部类平级的类创建静态内部类实例: 外部类名.内部类名 实例名=new 外部类名. 内部类构造方法(参数)限制:静态内部类不能与外部类重名静态内部类不能访问外部类的非静态成员,外部类不能访问内部类的非静态成员原创 2016-12-08 21:24:06 · 472 阅读 · 0 评论 -
【XML】DOM—JAXP 解析
DOM 解析器文档对象模型(Document Object Model),规定了解析文档的接口,各种语言都可以按照DOM规范去实现这些接口,DOM规范可以解析的文档和广泛,包括XML文件和HTML文件。语言绑定:在特定语言中,使用DOM规范需要定义DOM规范制定的接口,并给出实现接口的类的集合。Sun公司提供了JAXP,实现了DOM规范的Java语言绑定。原创 2016-12-30 18:21:49 · 668 阅读 · 0 评论 -
【XML】SAX 解析
1. XML SAX解析1.1 SAX解析器SAX(Simple API for XML)是一种XML文档解析标准是一个公共的基于事件的解析器SAX作为接口,是事件驱动型XML解析的标准接口,对文档进行顺序扫描,当扫描到document开始,element开始与结束,document结束等地方时,通知事件处理函数作出相应的动作。与DOM相比,SAX占用的系统资源更少1.2 SAX API事件原创 2016-12-30 15:21:42 · 502 阅读 · 0 评论 -
【XML】文档结构与语法规则
XML定义XML=Extensible Markup Language,可扩展标记语言,适合Web传输,设计宗旨是为了传输数据。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据,XML标签没有被预定义,需要开发者根据需要自行定义标签。原创 2016-12-30 15:18:21 · 627 阅读 · 0 评论 -
【高级特性】String,StringBuffer,StringBuilder
1.String1.1 String的创建方式常用创建方式:String str=”thisi is a string“ 相同的字符串只创建一次,多个字符串常量可以同时对其内存空间引用。 不常用的创建方式:String str=new String(“this is a string”) 针对每一个字符串变量,栈内存都要开辟新的空间存储变量,即使变量是完全相同的。1.2 String对象的特点原创 2016-12-26 21:26:03 · 566 阅读 · 0 评论 -
【多态】面向接口的编程思想
开发系统时,主体架构使用接口,接口构成系统的骨架 。这样就可以通过更换接口的实现类来更换系统的实现。实例:学校要安装彩色和黑白两台打印机,分别打印教员和机构的相关信息(用接口实现)。抽象:彩色和黑白两台打印机都继承打印机这个父类;教员机构都要输出相关信息给打印机,都实现Iinfo接口。原创 2016-08-30 22:33:41 · 859 阅读 · 0 评论 -
【IO流】File类及递归算法访问文件
1. File类File类的对象表示了磁盘上的文件或目录File类提供了平台无关的方法对磁盘上的文件或目录进行操作File类直接处理文件和文件系统,比如删除文件,获取文件长度大小等信息File类没有提供方法从文件读取或向文件存储信息原创 2016-12-14 12:19:55 · 410 阅读 · 0 评论 -
【IO流】字节输入输出流
0. 字节流框架1. InputOutputStreanm 字节输入输出流字节流类用于向字节流读写8位二进制的字节,一般的,字节流类主要用于读写注入图像或声音等多媒体的二进制数据.原创 2016-12-14 21:49:22 · 900 阅读 · 0 评论 -
【IO流】IO框架
流是一个很形象的概念,当程序需要读取数据的时候,会开启一个通向数据源的流。这个数据源可以是文件,内存,或是网络连接。类似的。当程序需要写入流的时候就会开启一个通向目的地的流。原创 2016-12-14 10:57:07 · 555 阅读 · 0 评论 -
【多线程】多线程编程:线程通信
线程通信:线程通信使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。线程通信的实现方式:1. 通过共享对象通信2. 忙等待3. wait(),notify()和 notifyAll()4. 丢失的信号5. 假唤醒6. 多线程等待相同信号转载 2016-12-14 10:34:06 · 308 阅读 · 0 评论 -
【多线程】多线程编程:线程同步
线程同步:为什么需要同步?线程同步是为了防止多个线程访问一个数据对象时,对数据造成破坏。线程的同步是保证多线程安全访问竞争资源的一种手段同步和锁:Java中每个对象都有一个内置锁获得一个对象的锁也称为:获取锁;锁定对象;在对象上锁定;在对象上同步一个对象只有一个锁,所以如果一个线程获得该锁,该对象上的其他线程就没有可以获得的锁,直到第一个线程释放锁。原创 2016-12-14 10:02:14 · 560 阅读 · 0 评论 -
【集合框架】2. List容器
集合框架2. List容器2.1 ArrayList——动态数组2.2 LinkedList——链表原创 2016-12-04 21:01:42 · 440 阅读 · 0 评论 -
【集合框架】1. 集合框架的介绍
1.框架是一个类库的集合,集合框架就是一个用来表示和操作集合的统一的架构,它包含了实现集合的接口与类2.集合框架中不同的集合类有各自不同的数据结构,所以在使用中要根据应用的性能要求来选择不同的集合类3.集合类存放在java.util包中,今后会大量使用集合类和相关接原创 2016-12-04 20:55:04 · 349 阅读 · 0 评论 -
课时59 | 策略模式
策略模式:针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。策略模式把算法的责任和算法本身分隔开,委派给不同的对象管理。 模式场景:对一组数据进行排序,目前有三种排序方法,可以用最小的改动实现各个排序方法的切换。设计思路:我们先从具体的排序算法开始,在子类中封装排序算法:冒泡排序法和选择排序法//封装了冒泡排序法class BubbleSort implement原创 2016-09-03 15:45:31 · 237 阅读 · 0 评论 -
Java 编程学习笔记-前言
课程视频是从网易云课堂找到的 Java编程课老师的讲解很清晰,讲课节奏也很好。适合基础一般的同学学习;从原理到思想,老师剖析的比较详细,在写代码的时候,几乎可以覆盖到所有可能出现问题的地方,很透彻;整套课程有一个贯穿的教务系统开发项目,随着知识点的展开,项目的代码一点点补充上来,很有乐趣。阶段性的激励容易坚持下来;课时分段比较科学,每节课时间大概在半小时以内,课时内容相对独立完整,学完原创 2016-08-24 11:17:40 · 278 阅读 · 0 评论 -
课时43|封装-方法重载,包的实现和利用
同一个包内的代码可以互相访问构造方法的重载: 1.一个类里面可以有多个构造方法 2.构造方法没有返回值 3.通过调用不同的构造方法来表达对象不同的初始化方式。(所以构造方法只能用一个?No. 使用不同的参数列表,调用对应的构造方法,可以同时使用多个构造方法哦)java中可以出现同名方法。 方法签名(方法名+参数列表)是判断方法是否相同的依据: method(String name) me原创 2016-08-24 13:38:05 · 236 阅读 · 0 评论 -
课时41|封装-构造方法,this关键字
构造方法的作用: 1.负责对象初始化工作,为对象的属性赋初值; 2.创建对象时,其类的构造方法确保在用户操作对象之前,系统保证初始化的进行。构造方法的语法规则: 1.构造方法名与类名相同; 2.没有返回类型; 3.方法实现主要为字段赋初值。构造方法的调用: 1.new操作符:创建新的对象时就会调用相应类的构造方法; 2.Java系统保证每个类都有构造方法。Constuctor1:默认无原创 2016-08-24 13:30:55 · 299 阅读 · 0 评论 -
课时40|封装-封装的概念,UML类图
OOP三大特性:封装,继承,多态 访问修饰符: 1.private:只能被本类访问 2.protected:该类和及其子类,同一个包中的类可以访问。 4.public: 非该类成员也可以访问 5.default: 同一个包中的类可以访问。封装属性的目的: 1. 对封装对象的属性设置尽量私有化, 2. 当有对某属性访问的需要时, 3. 针对相应的属性设置get set 方法原创 2016-08-24 11:40:31 · 1151 阅读 · 0 评论 -
课时37|String 对象的创建和使用
几个需要反复明确的概念 面向对象的优点 1.便于程序模拟现实世界中的实体 2.隐藏细节 3.可重用 Java对象的内存管理 1.使用new创建对象,在堆内存分配对象空间初始化 2.在方法栈中定义局部变量,持有堆内存中对象的引用 3.方法执行完返回,栈内存自动释放,局部变量销毁 4.如果堆内存的对象没有变量引用它,就会被java垃圾回收器回收释放原创 2016-08-24 11:27:59 · 331 阅读 · 0 评论 -
课时42|封装--static关键字、设计模式之单例模式
Static修饰过的成员变量和成员方法叫做类变量(静态变量)类方法(静态方法)。我们需要一种特殊的变量我们在操作一个变量和方法时,一般会先引用某个类的对象,然后通过【对象名.属性名】,或者【对象名.方法名】进行操作。但是,如果只想为某一特定变量或方法分配一块空间,使其不需要通过构建对象就能调用,这时候就要使用Static关键字。从使用变量的目的上就能看出,Static变量,是变量声明之时,就会在内存原创 2016-09-02 17:06:58 · 359 阅读 · 0 评论 -
Java对象和引用变量
对于引用变量的深层含义,未必在初学的时候就能深刻理解, 所以理解好下面这两句话的真正含义非常重要Case cc=new Case();Case cc;cc=new Case();1.先搞清楚什么是堆,什么是栈。 Java开辟了两类存储区域,对比二者的特点 存储区域 存储内容 优点 缺点 回收 栈 基本类型的变量和对象的引用变量 存取速度比堆要快,仅次于寄存器,栈原创 2016-08-31 00:45:30 · 38004 阅读 · 19 评论 -
课时57 | 接口的概念和作用
接口语法:接口中只能包含静态常量,抽象方法。Java接口是对功能的扩展;通过实现接口,Java类可以实现多实现; 4.一个类可以同时继承(extends)一个父类,并且实现(implements)多个接口; 5、接口与接口之间可以使用extends实现继承关系。接口与抽象类的区别:1.抽象类和具体实现类之间是一种继承关系,也就是说,如果采用抽象类的方式,则父类和子类在概念上应该是相同的;原创 2016-08-30 22:51:33 · 532 阅读 · 0 评论 -
课时93 | 集合框架:Java如何用接口和类玩转数据结构(上)
-框架是一个类库的集合,集合框架就是一个用来表示和操作集合的统一的架构,它包含了实现集合的接口与类-集合框架中不同的集合类有各自不同的数据结构,所以在使用中要根据应用的性能要求来选择不同的集合类-集合类存放在java.util包中,今后会大量使用集合类和相关接口原创 2016-09-17 00:25:16 · 673 阅读 · 0 评论 -
课时24—课时30 | Java 数组对象的创建和应用
1.数组的作用和类型 2.数组的声明与创建3.初始化数组4.常用数组查找算法5.常用数组排序算法6.Arrays类的用法7.二维数组原创 2016-09-17 00:41:19 · 310 阅读 · 0 评论 -
【泛型】案例讲解:自定义一个可以存放指定数据的容器
案例介绍:要求自定义一个容器,次容器可以存放指定类型的数据,通过泛型来实现案例设计: - 设计定义一个泛型类 - 设计add方法给容器添加数据 - 设计get方法获取容器中指定位置的数据 - 设计size方法获取容器中数据的多少 - 要求容器超过容量要自动扩容原创 2016-12-12 22:43:30 · 1608 阅读 · 0 评论 -
【泛型】泛型方法
泛型只涉及到某个方法中的参数声明时,使用泛型方法而不是泛型类。定义:不仅类可以声明泛型,类中的方法也可以声明仅用于自身的泛型,这种方法叫做泛型方法。泛型可用于返回类型声明,参数类型声明,局部变量的类型声明格式:访问修饰符<泛型列表> 返回类型 方法名(参数列表){ 实现代码}原创 2016-12-12 17:51:35 · 369 阅读 · 0 评论 -
【泛型】类型通配声明
同一泛型类,如果实例化时,给定的实际类型不同,则这些实例的类型是不兼容的,不能相互赋值。泛型类实例之间的不兼容性,会带来使用的不便。我们可以使用泛型通配符(?),声明泛型类的变量就可以解决这个问题。原创 2016-12-12 15:47:35 · 406 阅读 · 0 评论