Java学习个人备忘录之内部类】的更多相关文章

内部类: 将一个类定义在另一个类的里面,对里面那个类就称为内部类. class Outer { private int num = 3; class Inner //它想访问Outer中的num, 如果在外面就需要创建一个对象,然后通过公开的接口访问,但是现在Outer内部, 就可以直接访问了.这样方便 { void show() { System.out.println("show run..." + num); } } //如果现在想访问Inner就需要这样 public void…
UML类图 UML  Unified Modeling Language (UML)又称统一建模语言或标准建模语言 在一个类中      属性表示这类事物的性质(描述它的数据)      方法表示这类事物的功能(用代码实现功能就意味着写流程)   可见性 Java中默认的可见性是包内可见 Private 将可见性限制在本类内部,在类的外部,即使同一个包中也不能访问 Public 将可见性完全放开,所有地方都可以访问 Protected 本包和子类可见 可见性是语言和编译器和JVM级别的,这些信息…
线程间通讯多个线程在处理同一资源,但是任务却不同. class Resource { String name; String sex; } //输入 class Input implements Runnable { Resource r; Input(Resource r) { this.r = r; } public void run() { int i = 0; while(true) { synchronized(r) //保证两个线程用同一个锁 { if (i==0) { r.name…
进程:正在进行中的程序(直译). 线程:就是进程中一个负责程序执行的控制单元(执行路径) 一个进程中可以有多个执行路径,称之为多线程. 一个进程中至少要有一个线程. 开启多个线程是为了同时运行多部分代码. 每一个线程都有自己运行的内容.这个内容可以称为线程要执行的任务. 多线程的好处:解决了多部分同时运行的问题. 多线程的弊端:线程太多回到效率的降低. 其实应用程序的执行都是cpu在做着快速的切换完成的.这个切换是随机的. jvm启动时就启动了多个线程,至少有两个线程可以分析的出来. 1.执行m…
概述 异常:是在运行时期发生的不正常情况. 在java中用类的形式对不正常情况进行了描述和封装对象. 描述不正常的情况的类,就称为异常类. 以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性. 其实异常就是java通过面向对象的思想将问题封装成了对象. 用异常类对其进行描述.不同的问题用不同的类进行具体的描述. 问题很多,意味着描述的类也很多.将其共性进行向上抽取,形成了异常体系. 最终问题(不正常情况)就分成了两大类 Throwable:无论是error,还…
abstract class AbsDemo { abstract void show1(); abstract void show2(); } 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示-----接口  interface 定义接口使用的关键字不是class,是interface. 对于接口当中常见的成员:而且这些成员都有固定的修饰符1. 全局常量:public static final2. 抽象方法:public abstract 由此得出结论,接口中的成员…
继承的好处1. 提高了代码的复用性.2. 让类与类之间产生了关系,给第三个特征多态提供了前提. java中支持单继承,不直接支持多继承,但对C++中的多继承机制进行改良.java支持多层继承. C继承B,B继承A,就会出现继承体系. 当要使用一个继承体系时:1. 查看该体系中的顶层类,了解该体系的基本功能.2. 创建体系中的最子类对象,完成共能的使用. 什么时候定义继承呢?当类与类之间存在着所属关系的时候,就定义继承,xxx是yyy中的一种,  xxx extends yyy. class Pe…
文档注释 单行注释用 // 多行注释有两种,第一种是 /* 内容 */,第二种是/** 内容 */. 这两种多行注释的区别是/** 内容 */这种注释可以生成一个该文件的注释文档,下面是演示代码. ArrayTool.java文件 /** 建立一个用于操作数组的工具类,其中包含着常见的对数组操作的函数,如: 最值,排序等. @author 纸人 @version v1.0 */ //ArrayTool.java文件 public class ArrayTool //加上public后,文件名和类…
下面主要讲解一个针对数组操作的工具类. a.java -- 工具类文件 //按理来说要先编译本文件, 然后再编译主函数 class ArrayTool { /* 获取整型数组的最大值 */ public int getMax(int[] arr) { int maxIndex = 0; for (int x=1; x<arr.length ; x++ ) { if (arr[x]>arr[maxIndex]) { maxIndex = x; } } return arr[maxIndex];…
被static标记的东西会放在内存中被共享的,对象用到时,就会来取的. class Person { String name; //成员变量,实例变量 static String country = "CN"; //静态变量,类变量 public void show() { System.out.println(country+":"+name); } } class StaticDemo { public static void main(String[] arg…
对象,其实就是该类事物实实在在存在的个体. 类与对象之间的关系?类:一类事物的描述.对象:该类事物的实例.在java中通过new来创建的.举例来说,类就是汽车说明书,类只能在理论上造一辆汽车,并且这个说明书非常明确的写了汽车有哪些部件.可以干什么等等信息,我们可以通过这个说明书(类)得知这辆车全方位的信息:对象就是按照这个说明书造出来的一辆汽车实体,是真实存在的,可以开走的. 下面我们用类描述一辆小汽车: 分析:1,属性轮胎数.颜色.2,行为运行. 定义类其实就是在定义类中的成员成员:成员变量就…
临时配置环境方式:查看path下的环境变量 set path修改path下的环境变量 set path=haha删除path下的环境变量 set path=查看当前java的版本 javac -versionset path=路径;%path% =========================================================== 类文件路径配置:就是运行.class文件的路径set classpath=c:\myclass查看是否配置过路径:set classp…
对象的多态性 class 动物 {} class 猫 extends 动物 {} class 狗 extends 动物 {} 猫 x = new 猫();//意思是建立本类的对象 new 猫(),并通过本类的引用指向本类的对象. 动物 x = new 猫();//所以也可以这样写  一个对象两种形态.//上面的代码表示,用猫类型创建对象,用动物类型指向.//它的表现就是  父类型的指向子对象//这就是多种形态. 猫这类事物即具备着猫的形态,又具备着动物的形态.这就是对象的多态性. 简单说:就是一…
抽象类 特点:1. 方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰,抽象方法必须定义在抽象类中.该类必须也被abstract修饰2. 抽象类不可以被实例化. 为什么?  因为调用抽象方法没意义.3. 抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化,否则,这个子类还是抽象类. abstract class 犬科 { abstract/*抽象*/ void show(); }//抽象方法所在的类也必须的抽象的. class 狗 extends 犬科 { void…
final关键字final可以修饰类,方法,变量.final修饰的类不可以被继承final修饰的方法不可以被覆盖final修饰的变量是一个常量.只能被赋值一次.内部类只能访问被final修饰的局部变量. class Fu { void method() { //调用了底层系统的资源 } } class Zi extends Fu { void method() { System.out.println("haha"); } } 从上面可以看出继承是有弊端的,就是打破了封装性.这时我们就…
构造函数 概念:构建创造对象时调用的函数. 作用:可以给对象进行初始化,创建对象都必须要通过构造函数初始化. 一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数.如果在类中定义了指定的构造函数,那么类中默认构造函数就没有了. 构造函数可以直接调用一般函数,但是一般函数不能直接调用构造函数,如果想调用,就要new一下. class Person { private String name; private int age; //定义一个Person类的构造函数 Person()…
数组 概念:同一种类型数据的集合,其实数组就是一个容器. 数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素. 格式1:元素类型[] 数组名 = new 元素类型[元素个数]; 格式2:元素类型[] 数组名 = new 元素类型[]{元素1,元素2,元素3,....,元素N}; 内存的划分:1:寄存器2:本地方法区3:方法区4:栈内存 存储的都是局部变量 而且变量所属的作用域一旦结束,该变量就自动释放5: 堆内存存储的是数组和对象(其实数组就是对象) 凡是new 建立的都在堆中.特…
JAVA基础之内部类 2017-01-13 1.java中的内部类都有什么?! 成员内部类 局部内部类 匿名内部类 静态内部类 2.内部类详解 •成员内部类 在一个类的内部再创建一个类,成为内部类 1)在一个类中使用内部类,可以在内部类中直接存取所在类的私有属性或方法 class Outer{ //外部类Outer private int i = 111 ;//外部类私有变量 class Inner{ //内部类Inner private int j = 222 ;//内部类私有变量 publi…
java学习笔记系列: java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note9.html,转载请注明源地址. java内部类分为:…
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库. ③.JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的. 这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制. Java 反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类. 在运行时构造任意一…
Java学习:JDK8的新特性 一.十大特性 Lambda表达式 Stream函数式操作流元素集合 接口新增:默认方法与静态方法 方法引用,与Lambda表达式联合使用 引入重复注解 类型注解 最新的Date/Time API (JSR 310) 新增base64加解密API 数组并行(parallel)操作 JVM的PermGen空间被移除:取代它的是Metaspace(JEP 122) 一.Lambda表达式 1.函数式编程 函数编程非常关键的几个特性如下: 1.闭包与高阶函数 函数编程支持…
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ public static void main(String[] args) { ProcessArray pa=new ProcessArray(); int[] target={5,35,-2,35,-21}; pa.process(target, new Command(){ //匿名内部类…
Java学习--内部类(一) 一. 内部类的定义和特点 class Outer{ privite int num = 5; class Inner{ public void Display(){ System.out.println(num); } } public void method(){ Inner i = new Inner(); i.Display(); } } 这里写了一个类Outer,它有一个私有变量,一个成员方法method(),和一个内部类Inner.在内部类Inner中访问…
Java学习路线图 本文会持续更新,敬请关注.下划线的文字会在这个博客继续更新. 回顾自己的Java学习经历,从学校的课堂到现在每天的项目开发,一份路线路线图浮出来. 其中有未做好的地方,也有自我感觉有用的方法.整理并分享出来,既是分享也是抛砖引玉,欢迎大家转载和讨论. 0.起步 一本书或一个教程,一个开发工具,Hello World.   初识Java一般都会从某本教材.课程或者教程开始.完成第0部,首先需要掌握: Java基本语法 开发工具的基本使用:建立Java项目,敲入代码,运行程序.当…
在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.如何初始化匿名内部类.匿名内部类使用的形参为何要为final. 一.使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 } 在这里我们看到使用匿名内部类我们必须要继承一个父类或者…
一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 学完后目标: 1.可进行小型应用程序开发 2.对数据库进行基本的增删改查管理 市场价值:¥5000 计算机基础知识 计算机基础.DOS常用命令.Java概述.JDK环境安装配置.环境变量配置.Java程序入门 1.2015年Java基础视频-深入浅出精华版(强烈推荐) 2.历经5年锤炼(适合初学者入…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理设备之间的数据传输,对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中 输入/输出流可以从以下几个方面进行分类 从流的方向划分: 输入流.输出流 从流的分工划分: 节点流.处理流 从流的内容划分: 面向字符的流.面向字节的流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡的过程 一个线程在任何时刻都处于某种线程状态(thread state) 线程生命周期状态图 诞生状态 线程刚刚被创建 就绪状态 线程的 start 方法已被执行 线程已准备好运行 运行状态 处理机分配给了线程,线程正在运行 阻塞状态(Blocked) 在线程发出输入/输出请求且必须等待其返回 遇到…
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为一个进程,例如:用字处理软件编辑文稿时,同时打开mp3播放程序听音乐,这两个独立的程序在同时运行,称为两个进程 进程要占用相当一部分处理器时间和内存资源 进程具有独立的内存空间 通信很不方便,编程模型比较复杂 多线程 一个程序中多段代码同时并发执行,称为多线程,线程比进程开销小,协作和数据交换容易…