Java
文章平均质量分 61
taxue505
网络 信息安全 互联网
展开
-
JAVA核心技术I之接口与内部类
知识点整理: 1.实现接口使用关键字implements,接口中的所有方法自动属于public,实现一个接口必须要实现里面的方法。接口绝对不能含有实例域,也不能在接口中实现方法。在实现接口时,必须把方法声明为public。 2.接口中的域也被自动设定为public static final。 3.对象克隆这块个人没怎么用到,暂时没什么想要写的东西,等用到再查一下。 4.回调和代理都是原创 2015-10-19 08:55:34 · 327 阅读 · 0 评论 -
Java中的多重继承
多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承。有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需要思考的不是怎么使用多重继承,而是您的设计是否存在问题.但有时候我们确实是需要实现多重继承,而且现实生活中也真正地存在这样的情况,比如遗传:我们即继承了父亲的行为和特征也继承了母亲的行为和特征。可原创 2015-11-07 10:00:22 · 1155 阅读 · 2 评论 -
java的重载、覆盖和隐藏的区别
重载:方法名相同,但参数不同的多个同名函数。发生在子类于父类之间,是指在子类与父类之间或在同一类中定义具有相同的方法名,访问权限等的方发。区别在于返回类型或参数列表。 注意:1.参数不同的意思是参数类型、参数个数、参数顺序至少有一个不同 2.返回值和异常以及访问修饰符,不能作为重载的条件(因为对于匿名调用,会出现歧义,eg:void a ()和in原创 2015-11-06 10:41:55 · 2538 阅读 · 0 评论 -
详解Java类、对象、实例化
Java是一种面向对象的语言。由于具有面向对象特性的语言,Java支持以下基本概念: 多态性 继承 封装 抽象化 类 对象 实例 方法 消息解析在本章中,我们将探讨类和对象这些概念。对象 - 对象具有状态和行为。例如:狗有状态 - 颜色,名称,繁殖以及行为,摇头晃脑,吠叫,吃。对象是类的实例。类 - 一个类可以被定义为描述行为的模板/蓝色印花/指原创 2015-11-06 11:44:08 · 8945 阅读 · 2 评论 -
JAVA中的访问权限
Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符。 private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。 default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同原创 2015-10-30 11:39:01 · 598 阅读 · 0 评论 -
Java编程思想小笔记
1.所有的类最终都继承自单一的基类-Object类,这就是单根继承结构,那么所有的接口是不是都继承自单一的基接口呢??2.java数据的存储:java对象主要存在于RAM中的堆中,堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活多长时间,因此,在堆里分配存储有很大的灵活性。但这种灵活性的代价是:用堆进行存储分配和清理可能比用堆栈进行存储分配需要更多时间。常量存储:在嵌入式系统中,转载 2015-10-30 11:47:16 · 969 阅读 · 0 评论 -
Java编程思想小笔记2
54.包:库单元注意:①java包的命名规则全部使用小写字母,包括中间的字也是如此。 ②package语句必须是文件中的第一行非注释程序代码。假设你编写一个Stack类并安装到了一台机器上,而该机器上已经有了一个别人编写的 Stack类,我们该如何解决呢?由于名字之间的潜在冲突,在java中对名称空间进行完全控制并为每个类创建唯一的标识符组合就成为了非常重要的事情。当编写一转载 2015-10-30 11:48:45 · 511 阅读 · 0 评论 -
Java编程思想小笔记3(第11章)
1.泛型和类型安全的容器@SuppressWarnings注解及其参数表示只有有关“不受检查的异常”的警告信息应该被抑制。例子:class Apple{ private static long counter; private final long id = counter++; public long id(){return id;}}class转载 2015-10-30 11:50:37 · 515 阅读 · 0 评论 -
Java异常处理机制
异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当的麻烦! Java语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的原创 2015-12-09 22:24:34 · 652 阅读 · 1 评论 -
对象与对象变量
package com.ray.object;/** * 对象与对象变量 * * @author ray * @since 2015-04-22 * @version 1.0 * */public class Person { public Person (){} public static void main(String[] args) { Per原创 2015-11-23 19:19:22 · 456 阅读 · 0 评论 -
Java里的字符串、String类
String类在java面试中也是1个常见的问题点.所以也是写在这里方便以后查阅了.大家都知道c语言里是没有String 字符串这个数据类型的.只能用字符数组的1个特殊形式来表示一个字符串, 就是这个字符数组的最后1元素必须是以'\0'(空) 来结尾的.例如:char c[] = "abcd" 是1个字符串, 但是它的长度是5, char[4] = '\0'char d[6原创 2015-12-10 11:16:49 · 797 阅读 · 0 评论 -
不用main方法,使用静态方法也可以打印Hello World
package com.ray.object;/** * 不用main方法,也可以打印Hello World! * * @author ray * @since 2015-04-29 * @version 1.0 * */public class Person { static { System.out.println("Hello World!"); Syst原创 2015-11-23 19:30:17 · 603 阅读 · 0 评论 -
JAVA正则表达式
编程不懂正则表达式,不如回家种红薯 编程不懂正则表达式,将有被淘汰的危险 编程的大量工作都是在处理字符串,如验证输入、查找子串替换、解析HTML等,而正则表达式是一个极为强大的工具,它使我们需要很多行重复啰嗦的代码才能完成的编程任务,一个表达式就可以搞定,既节省时间又节省精力。但是学习它并不是一件轻松的事情,需要有那么一点点毅力的。 如果你懂正则表原创 2015-12-10 17:56:35 · 368 阅读 · 0 评论 -
方法参数的调用是值调用而不是引用调用
方法参数的调用是值调用而不是引用调用package com.ray.object;/** * 方法参数的调用是值调用,而不是引用调用 * * @author ray * @since 2015-04-22 * @version 1.0 * */public class Person { private static void swap(Person a, Pe原创 2015-11-23 19:26:07 · 542 阅读 · 0 评论 -
JAVA中的容器
Java中有一些对象被称为容器(container)。容器中可以包含多个对象,每个对象称为容器中的一个元素。容器是用对象封装的数据结构(data structure)。不同的数据结构有不同的组织元素的方式,也可以有不同的操作。根据具体实施的不同,数据结构的操作效率也各有差别。Java中的容器也是这样。我们要选择适当的容器,以应对变化的需求。充满梦想的容器原创 2015-11-28 20:41:19 · 448 阅读 · 0 评论 -
工厂模式(java)
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部大原创 2015-12-23 22:32:19 · 376 阅读 · 0 评论 -
Java和C++中的重载,覆盖,隐藏区别
C++中的重载,覆盖和隐藏1.成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。2.覆盖是指派生函数覆盖基类函数(1)不同的范围(分别位于派生类和基类);(2)函数名相同;(3)参数相同;(4)基类函数必须有virtual关键字。原创 2015-11-06 10:50:36 · 1635 阅读 · 1 评论 -
Java中的抽象类和接口区别
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两原创 2015-11-06 22:15:31 · 1390 阅读 · 0 评论 -
java中接口
1、定义接口 使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:[修饰符] interface 接口名 [extends 父接口名列表]{ [public] [static] [final] 常量; [public] [a原创 2015-11-06 22:39:02 · 784 阅读 · 0 评论 -
JAVA核心技术I之前三章
第一章 java程序设计概述第一章主要讲的是java的由来以及介绍了java的特性,由于没有设计到设计模式,所以对其中各种健壮性,可移植性没有直观的认识,以后如果做了相关项目或许会有更深刻的体会,不过关于1.5节java常见误解倒是讲了很多对java一些常见问题的解释,特别是与其他语言的比较,写的比较细致。第二章java程序设计环节主要讲安装java的运行环境,包括安装jdk,一些集成开发环境,当然原创 2015-10-19 08:50:44 · 400 阅读 · 0 评论 -
JAVA核心技术I之对象与类
知识点总结: 1)OOP:面向对象程序设计,它认为程序是由对象构成,这些对象有自己的属性和能执行的操作。 创建类的实例:由类构造对象的过程。(我觉得就是在类中new 一个新的对象的过程,如果有不对的请指出) 封装:将数据和行为结合在一个包里,并对对象的使用者隐藏了数据的实现方法; 实现封装的关键在于绝对不能让类中的方法直接访问其他类的实例域,但可以访问他自原创 2015-10-19 08:52:47 · 366 阅读 · 0 评论 -
JAVA核心技术I之继承
知识点总结: (1)关键字extends表示继承。已存在的类:超类/基类/父类,新类:子类/派生类/孩子类。为了调用超类中的方法,使用super关键字。 (2)关于super与this:super不是一个对象的引用,不能将super赋给另一个对象变量,他只是一个指示编译器调用超类方法的特有关键字。 (3)使用super调用构造函数的语句必须是子类构造函数的第一条语句。 (4)原创 2015-10-19 08:54:06 · 394 阅读 · 0 评论 -
重写equals、hashCode
1.何时需要重写equals()当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念)。2.设计equals()[1]使用instanceof操作符检查“实参是否为正确的类型”。[2]对于类中的每一个“关键域”,检查实参中的域与当前对象中对应的域值。 [2.1]对于非float和double类型的原语类型域,使用==比较; [2.2]对于对象引用域,递归调用equals方法;原创 2015-10-19 15:35:42 · 439 阅读 · 0 评论 -
Java关键字final、static使用总结
一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 fi原创 2015-11-04 16:42:36 · 338 阅读 · 0 评论 -
Java异常处理总结
异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当的麻烦! Java语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的原创 2015-11-04 17:15:53 · 368 阅读 · 0 评论 -
Java关键字this、super使用总结
一、this Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,原创 2015-11-04 17:03:28 · 323 阅读 · 0 评论 -
详解JAVA内部类
内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。public class OuterClass { private String name ; private int age; public String getName() { return name; } public void setName(String原创 2015-11-05 17:53:17 · 434 阅读 · 0 评论 -
JAVA编程思想之内部类
1、定义 一个类的定义放在另一个类的内部,这个类就叫做内部类。 public class First { public class Contents{ public void f(){ System.out.println("In Class First's inner Class Contents method f()"); }原创 2015-11-05 16:54:33 · 334 阅读 · 0 评论 -
Java多态性理解
什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的原创 2015-11-05 21:52:12 · 4457 阅读 · 0 评论 -
C++和java多态的区别
多态在 Java 和 C++ 中的实现异同:单继承情况下,两者实现在本质上相同,都是使用方法表,通过方法表的偏移量来调用具体的方法。Java 的方法表中包含 Java 类所定义的所有实例方法,而 C++ 的方法表则只包含需要动态绑定的方法 (virtual 修饰的方法 )。这样,在 Java 下所有的实例方法都要通过方法表调用,而 C++ 中的非虚方法则是静态绑定的。原创 2015-11-06 08:42:09 · 3674 阅读 · 4 评论 -
Java中的向上转型和向下转型
转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展。向上转型:子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口向下转型:父类引用的对象转换为子类类型称为向下转型。向上转型:向上转型问题的由来:原创 2015-11-06 17:41:38 · 4785 阅读 · 2 评论 -
java中的抽象类
抽象类的定义形式:一般格式如下:abstract class 类名{ 类体 }说明:l 抽象类是不能直接实例化对象的类。也即抽象类不能使用new运算符去创建对象。l 抽象类一般包括一个或几个抽象方法。所谓抽象方法需在abstract修饰符进行修饰,抽象方法只有方法的声明部分,没有具体的方法实现部分。抽象类的子类必须重写父类的抽原创 2015-11-06 22:33:22 · 473 阅读 · 0 评论 -
Java中的复用类——继承、组合和代理hello
一:继承 继承按现有类创建一个对象,不改变现有类,采用现有类的形式向其中添加新代码;(编译器强制你去初始化基类,是is_a 的关系,比如说Student继承Person,则说明Student is a Person。继承的优点是子类可以重写父类的方法来方便地实现对父类的扩展。 继承的缺点有以下几点: ①:父类的内部细节对子类是可见的。 ②:子类从父类原创 2015-11-06 16:28:45 · 3171 阅读 · 0 评论 -
再谈java实例化
java 类的实例化(instantiation)具有显性的和隐性的区别。写 Java 代码时,我们所使用 new 的方法实例化最简单直接的显性实例化。而隐性的实例化则出现在 java 程序的整个生命周期中,包括 String、Class,StringBuffer 或者 StringBuilder 的实例化等等。显性的实例化new 关键字实例化对象调用相原创 2015-11-06 11:53:44 · 826 阅读 · 0 评论 -
有return的情况下try catch finally的执行顺序(最有说服力的总结)
结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally转载 2016-07-29 21:39:22 · 260 阅读 · 0 评论