java
彼天
记录下成长,日后回首有追忆。
展开
-
Java类与对象
Java类与对象面向对象的编程思想力图使在计算机语言中对事物的描述与现实世界中该事物 的本来面目尽可能地一致,类( class)和对象( object)就是面向对象方法的核心概念。 类是对某一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的 个体,因而也称实例( Instance)。 比如:美女是类,范冰冰就是对象。狗是类,你家里的小狗就是对象。类在使用类之前,必须先定义它,原创 2016-11-05 17:35:47 · 615 阅读 · 0 评论 -
Java 多态的好处
什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用原创 2016-11-19 10:58:20 · 13187 阅读 · 13 评论 -
Java instanceof关键字
可以用 instanceof 判断一个类是否实现了某个接口,也可以用它来判断一个实例对象是否属于一个类。instanceof 的语法格式为: 对象 instanceof 类(或接口) 它的返回值是布尔型的,或真(true)、或假(false)instanceof使用的好处上一篇文章中介绍了多态,在进行对象类型转换之前先使用instanceof进行判断可以避免因程序错误导致的崩溃情况。packag原创 2016-11-19 11:23:15 · 333 阅读 · 0 评论 -
Java匿名内部类
在Java中抽象类和接口都是无法直接实例化的,他的实例化必须要通过子类的向上转型得到子类引用。比如下面的例子。通过子类的情况abstract class Person { public abstract void eat();}class Child extends Person { public void eat() { System.out.println("e原创 2016-11-19 12:05:08 · 283 阅读 · 0 评论 -
Java 异常类及异常处理简单概念
异常也称为例外,是在程序运行过程中发生的、会打断程序正常执行的事件,下面是几种常见的异常: 1. 算术异常( ArithmeticException)。 2. 没有给对象开辟内存空间时会出现空指针异常( NullPointerException)。 3. 找不到文件异常( FileNotFoundException)。 当异常发生时,通常可以用两种方法来处理,一种是交由 Java 默认原创 2016-11-19 13:13:49 · 2639 阅读 · 0 评论 -
Java 访问权限修饰符合打包的jar包
在 JAVA 中有四种访问控制权限,分别为: private、 default、 protected、 public。private在前面已经介绍了 private 访问控制符的作用,如果一个成员方法或成员变量名前使用了 private 访问控制符,那么这个成员只能在这个类的内部使用。 注意:不能在方法体内声明的变量前加 private 修饰符。default如果一个成员方法或成员变量名前没有使用原创 2016-11-19 13:29:28 · 715 阅读 · 0 评论 -
Java多线程
Java 的“多线程”,它可以让不同的程序块一起运行,如此一来可让程序运行更为顺畅,同时也可达到多任务处理的目的进程与线程什么是进程进程是程序的一次动态执行过程,它经历了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到最终消亡的过程。每个运行中的程序就是一个进程,这一点在任务管理器上面可以形象的看到。什么是线程线程是比进程更小的执行单位,线程是进程内部单一的一个顺序控制流原创 2016-11-19 14:09:48 · 322 阅读 · 0 评论 -
Java 继承Thread和实现Runnable实现多线程的区别
继承Thread实现多线程package dd20161117;public class OtherThread extends Thread { private int tickets = 20; private boolean isGo = true; public void run() { while (isGo) { if (tic原创 2016-11-19 14:25:38 · 590 阅读 · 0 评论 -
Java线程的同步synchronizated
对象锁临界区是指程序中的一个代码段,在这段代码中,单独并发的线程对同一个对象进行访问。在Java中,用关键字“synchronized”标识一个临界区。对象锁是指Java为临界区synchronized(Object)语句指定的对象进行加锁,对象锁是独占排他锁。 对象锁用于程序片段或者method上,此时将获得对象的锁,所有想要进入该对象的synchronized的方法或者代码段的线程都必须获取对原创 2016-11-19 17:19:54 · 911 阅读 · 0 评论 -
java 设计模式 观察者模式 新闻消息推送
观察者模式,字面意思有个观察者,那么就应该有一个被观察者。两个定义: 观察者:Observer (比如新闻客户端,你自己的微信号) 被观察者:Observable(新闻推送端,你关注的微信公众号) 1.观察者可以同时订阅多个被观察者。 2.被观察者可以同时被多个观察者订阅。 3.被观察者发生改变时会影响到所有的观察者。 对于每个用户都存在这三条线路。 Java中已经帮我们实现了观察原创 2017-06-22 15:20:07 · 2436 阅读 · 0 评论 -
java设计模式 装饰模式 魔域战力系统
装饰者模式:若要扩展功能,装饰者提供了比集成更有弹性的替代方案,动态地将责任附加到对象上。 先简单描述下装饰者模式发挥作用的地方,当我们设计好了一个类,我们需要给这个类添加一些辅助的功能,并且不希望改变这个类的代码,这时候就是装饰者模式大展雄威的时候了。这里还体现了一个原则:类应该对扩展开放,对修改关闭。 现在的需求: 魔法师:法师帽,法师帽可以镶嵌魔魂晶石和灵魂晶石等。 定义装备的接口:p原创 2017-06-23 11:59:30 · 387 阅读 · 0 评论 -
Java Enum 枚举详解
在某些情况下,一个类的对象是有限而固定的。比如季节类,它只有4个属性。像这种实例有限且固定的类,被称为枚举类。没错,它仍然是一个类,具有类所有的特性。 下面就开始创建一个枚举类吧:**无法创建枚举文件的问题**new>Enum 哎呀,结果发现创建的时候无法创建(如果你用的是eclipse),如下图: 这是因为Eclipse可以指定编译深度,默认值为1.4,而枚举是在jdk1.5之后出现原创 2017-06-13 17:28:59 · 1041 阅读 · 0 评论 -
java 深入理解泛型
泛型相信很多人都遇到过,比如使用集合的时候类似List,封装适配器的时候。泛型在处理数据的时候可以帮助我们,只处理指定类型的数据,比如集合无论我们存什么样的数据,取出的时候都会被认为是Object的对象,一般都需要我们去强转为想要的数据类型,这个时候可能会出现类型转换错误。比如:List list=new ArrayList<>(); list.add("你好");原创 2017-06-14 15:46:11 · 505 阅读 · 0 评论 -
java 类型通配符 ?
如果对上篇文章的泛型有所了解后,还需要了解下类型通配符,在java中类型通配符是? 可以将一个类型通配符?,作为类型实参,传递给一个泛型类或者泛型接口。如:Listpublic class Test { public static void main(String[] args) { List<Integer> list=new ArrayList<>(); l原创 2017-06-14 18:04:50 · 687 阅读 · 0 评论 -
Java final关键字
在 Java 中声明类、属性和方法时,可使用关键字 final 来修饰。 1、 final 标记的类不能被继承。 2、 final 标记的方法不能被子类复写。 3、 final 标记的变量(成员变量或局部变量)即为常量,只能赋值一次。原创 2016-11-12 17:23:46 · 260 阅读 · 0 评论 -
java Object类
Java 中有一个比较特殊的类,就是 Object 类,它是所有类的父类,如果一个类没 有使用 extends 关键字明确标识继承另外一个类,那么这个类就默认继承 Object 类。 因此, Object 类是 Java 类层中的最高层类,是所有类的超类。换句话说, Java 中任何 一个类都是它的子类。由于所有的类都是由 Object 类衍生出来的,所以 Oject 类中的 方法适用于所有原创 2016-11-12 17:22:30 · 300 阅读 · 0 评论 -
Java 抽象类
抽象类定义规则 · 抽象类和抽象方法都必须用 abstract 关键字来修饰。 · 抽象类不能被实例化,也就是不能用 new 关键字去产生对象。 · 抽象方法只需声明,而不需实现。 · 含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的 抽象方法后才能被实例化,否则这个子类还是个抽象类。 格式 abstract class 类名称 // 定义抽象类 { 声明数据成员 ;原创 2016-11-12 16:42:55 · 287 阅读 · 0 评论 -
Java面向对象程序设计的基本概念
Java面向对象程序设计的基本概念早期的程序设计经历了“面向问题”、“面向过程”的阶段,随着计算机技术的发展,以及所要解决问题的复杂性的提高,以往的程序设计方法已经不能适应这种发展的需求。于是,从 20 世纪 70 年代开始,相继出现了多种面向对象的程序设计语言,并逐渐产生了面向对象的程序设计方法。面向对象的程序设计涉及到对象、封装、类、继承及多态等几个基本概念。对象对象的特征分为静态特征和动态特征原创 2016-11-05 16:52:12 · 747 阅读 · 0 评论 -
Java程序中的方法
Java程序中的方法方法的好处用方法来编写程序代码有相当多的好处,它可简化程序代码、精简重复的程序流程,并把具有特定功能的程序代码独立出来,使程序的维护成本降低。方法的声明返回值类型 方法名称(类型 参数 1,类型 参数 2, …) { 程序语句 ; return 表达式; } 大括号内为方法的主体部分 要特别注意的是,如果不需要传递参数到方法中,只要将括号写出,不必填入任何内容。此外,原创 2016-11-05 15:23:56 · 344 阅读 · 0 评论 -
Java二维数组
Java二维数组二维数组的声明与分配内存数据类型 数组名[][] ; 数组名 = new 数据类型[行的个数][列的个数] ;int score[][];// 声明整型数组 scorescore = new int[4][3];//配置一块内存空间,供4行3列的整型数组 score 使用和之前的一维数组一样,想给数组分配内存就必须得知道元素的个数,二维数组是通过行数和列数来确定元素个数的二维数组原创 2016-11-05 14:43:31 · 469 阅读 · 0 评论 -
java基础程序设计
java基础程序设计环境变量的配置JAVA_HOME: ” D:\java\jdk1.8.0”CLASSPATH:” .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar “PATH :在原有初始值最后加上:”%JAVA_HOME%\bin;jdk和jre的关系:re(java runtime environment),就是java程序的运行环境。你所写的java原创 2016-11-05 13:08:28 · 344 阅读 · 0 评论 -
java变量与数据类型
java变量与数据类型变量与常量变量的声明数据类型 变量名称;如:int num; 在我们声明变量之后,程序会根据变量类型来给这个变量分配相应的内存。变量的赋值变量名 = 常量 ; 如:num=3; 由此可见,我们直接写出的数据都是常量,变量的值都是把常量赋值给变量的结果。数据类型 在Java程序中常量的整型如3等,默认的数据类型为int,而常量浮点型如3.0,默认数据类型为double数据原创 2016-11-05 13:31:43 · 367 阅读 · 0 评论 -
Java中char 字符类型的独特性
Java中char 字符类型的独特性char的两种赋值方式char c=97; char c1=’a’; 之所以会这样是因为字符类型在内存中占有 2 个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待,因此,严格说来,字符类型也算是整数类型的一种。原创 2016-11-05 13:35:50 · 711 阅读 · 0 评论 -
Java一维数组
Java一维数组数组的声明与内存分配:数据类型 数组名[ ] ; // 声明一维数组 数组名 = new 数据类型[个数] ; // 分配内存给数组int score[] ; // 声明整型数组 scorescore = new int[3]; // 为整型数组 score 分配内存空间,其元素个数为 3我们在声明变量之后,内存就分配好了,是因为变量的个数已经确定。当我们声明数组的时候,元素个数原创 2016-11-05 14:17:15 · 298 阅读 · 0 评论 -
Java程序的结构设计
Java程序的结构设计顺序结构。选择结构。循环结构。 Java程序整体是顺序结构,在循序结构中存在着选择与循环结构。顺序结构一条一条语句的执行下去,直到程序末尾。选择结构这种结构是依据判断条件的结果,来决定要执行的语句。如:if语句等。if语句if (判断条件) { 语句 1 ; 语句 2 ; … 语句 3 ; }if…else语句if (判断条件) { 语句主体 1 ;原创 2016-11-05 14:01:15 · 384 阅读 · 0 评论 -
Java 匿名对象和对象就是一个能否不断得到实例化对象内存引用的区别
对象的声明与实例化过程类名 对象名 = new 类名() ;Person p ; // 先声明一个 Person 类的对象 pp = new Person() ; // 用 new 关键字实例化 Person 的对象 p** 这里分别做了两件事: 1、 声明指向”由类所创建的对象”的变量 2、 利用 new 创建新的对象,并指派给先前所创建的变量。** 从图片中可以看出,当我们声明对象原创 2016-11-12 14:32:51 · 1400 阅读 · 1 评论 -
Java中this和super关键字的区别
this强调的是对象的本身,通过this调用的属性和方法都是它所属于的那个类中的属性和方法。属于对象和类间的关系 super在子类中调用父类的方法和属性。属于子类和父类两个类间的关系//父类public abstract class AbstractPerson { int age; public AbstractPerson(int age) { //调用本类中原创 2016-11-12 14:52:07 · 1148 阅读 · 0 评论 -
Java继承
继承父类所有的属性和方法子类在实例化的过程中必须要调用父类中的构造方法public class Student extends AbstractPerson{ public Student(int age) { //父类的构造方法 super(age); //父类中的属性 super.age=1; // TODO原创 2016-11-12 15:21:18 · 200 阅读 · 0 评论 -
Java static关键字
用static修饰的变量和方法存储在静态区,和类同级,在调用的时候可以不通过实例化的对象,也可以通过对象。public class Person{ static int age; public static void eat(){ System.out.println("吃饭时间到"); }}public class PersonTest{ //通过类直接原创 2016-11-12 15:46:51 · 292 阅读 · 0 评论 -
Java 内部类
在一个类的主体块中定义的类,这个类和正常的类没什么区别。 标识符 class 外部类的名称 { // 外部类的成员 标识符 class 内部类的名称 外部类 { // 内部类的成员 内部类 } } 外部类是无法找到内部类中所声明的属性。而内部类则可以访问外部类的属性,这时的内部类只是外部类的一个成员,全局不可以访问局部的属性。定义在方法中的类在方法中定义的内部类只能访问方法中的 f原创 2016-11-12 16:28:13 · 326 阅读 · 0 评论