java 名词解释等
类
实例
引用 实质指针
封装
for 的不同形式 for (int i : Location)
集合类 ArrayList<Egg> = new ArrayList<Egg>()
import 作用, 只是提供缩写
继承 "有一个" 和 "是一个" 区别
多肽 向上转型 和 向下转型 ( 向上转型没问题, 向下转型要判断 )
final class 不能被继承的累
final 变量, 常量
final 方法, 不能被重写(覆盖)
如果内部类被定义为 private final class Inner, 那么即不能被继承, 因为有final, 也不能被外部调用, 因为有Private, 所以就只能内部用
方法的重写(覆盖), 是指子类的方法重写父类同名方法
注意, 重写和多肽是完全不同的两个概念
多肽, 是指"动态绑定", 向下转型, 向上转型,( 也是依赖继承, 才能实现多肽)
接口, interface, 特殊的抽象类, 只能拥有抽象方法.
抽象类, abstract class, 只能被继承, 不能被实例化的类, 例如 animal
抽象方法, 没有实体, 只能被覆盖, 抽象方法只能存在于抽象类中, 如果一个类里有一个以上抽象方法, 则必须声明为抽象类
如果一个类继承了抽象类, 并且没有实现该抽象方法, 那么这个类也必须是抽象的
抽象类中可以存在非抽象方法, 可接口里只能声明一种用 public 来修饰的没有具体实现的方法.抽象类的成员变量可以被不同的修饰词来修饰, 但是接口中的成员变量默认都是静态常量.
设计类
如果新的累无法对其他类通过IS-A 测试, 就设计成不继承的类 // 类
只有在需要某类特殊化的版本时, 以覆盖或增加新的方法来继承现有类 // 继承
当你需要定义一个子类的模板, 又不系那个让程序员初始化此模板, 设计抽象类 // 抽象类
如果定义出类可以扮演的角色, 接口 // 接口
内存结构
局部变量 和 方法(包括实例方法) 存储在 栈 中
实例变量 和 对象 保存在 堆 中
构造函数, 默认构造函数, 注意在构造函数首行, supper(), 或 this(aaa) 这两种不能兼得, 必须放在首行, 想栈结构
另外, 构造函数会有连锁反应, 总是先调用父类构造函数.
静态方法, 不需要实例化就可以调用的方法, 类似静态变量, 静态变量是一种“共享变量”
包装类, 是只对原子类型的包装, 例如 int 和 integer.
异常, 首先是方法抛出异常, 而 try catch 只是在你调用该方法时, 要用的一种手段来捕获异常. 处理多重异常时, catch 要由小变大
事件与监听
事件源: 能够触发的事件 例如, button 是一个事件源
监听接口, 是介于事件源与处理事件的对象之间的桥梁 button.addActionListener(this), 其中由于这个事件源实现了监听接口, 那么桥梁建立成功, this就是用来处理事件触发后的对象
如果事件源能够触发多种事件, 那么如何处理的, 我们的办法就是定义两个对象分别来进行处理, 那么怎么做的?
1. has-A 的关系, 我们可以在这个类中定义两个实例变量,这两个对象分别就是处理事件的对象的实例, 但是这样有个问题, 就是这两个处理的对象不能够访问事件源本身,
例如, 屏幕上有个圆形图, 我想每次点击它时, 它变大, 事件点击->事件处理都没问题, 但是事件处理->圆变大就有问题, 因为事件处理对象无法访问到“圆”, 所以这个方法不行
2. 内部类, 同样是定义两个实例变量, 这两个变量时处理事件对象的实例, 但是这两个处理事件的对象的类的定义在事件源内部, 这样, 这两个类就可以访问到事件源中的内容,还是上边的例子
例如, 屏幕上有个圆形图, 我想每次点击它时, 它变大, 事件点击->事件处理->圆变大都没有问题.
内部类可以随意使用外部类的成员变量(包括私有)而不用生成类的对象, 这是内部类的唯一优点.
所谓RMI, 是一种远程调用接口, 就好比, 你目前想调用一个对象, OK, 没问题, 因为都在你本地的java虚拟机中,但是如果你想调用其他机器的类,怎么办, 可以使用java提供的 scoket 来实现,
java 有一套组件RMI, 使得你调用其他机器的类时, 感觉和调用你本地虚拟机的类一样感觉.
泛型, <>, 目前看到 ArrayList 在使用, 感觉像类型模板
java 命令行编辑模式 javac -d ( 将class文件放置目录 ), -classpath 引用的类, -sourcepath 提供到package根部, 因为有是有你引用了别的类, 而该类没有在classpath中, 那么使用这个源路径帮助编译
环境变量 JAVA_HOME, classpath, PATH
单元测试 JUnit
java 名词解释等的更多相关文章
- java名词解释
依赖注入 DI 面向切面编程 AOP 简单java对象 POJO -- JavaBean(spring称呼) 企业级javabean EJB
- java名词解释,让你更好理解
Java 开发工具包 (JDK) Java开发工具包是Java环境的核心组件,并提供编译.调试和运行一个Java程序所需的所有工具,可执行文件和二进制文件.JDK是一个平台特定的软件,有针对Windo ...
- nodejs、npm、grunt——名词解释
最近着手开发一个新项目,打算从工程化的角度整理一套自己的前端开发.发布体系. grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的 ...
- b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...
- b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释
我最近一直在找适合将来用于公司大型bs,b2b b2c的基础架构. 实际情况是要建立一个bs架构b2b.b2c的网站,当然还包括wap站点.手机app站点. 一.现有公司技术人员现状: 1.熟悉asp ...
- X窗口系统名词解释
前端时间Gentoo的桌面环境出了点问题,发现自己对Linux的桌面环境了解的很少,于是恶补了一下知识,以下名词解释基本上都是来自维基百科的条目和<Linux程序设计(第三版)>.一般而言 ...
- maven名词解释
Maven名词解释 Project:任何你想build的事物,Maven都可以认为它们是工程.这些工程被定义为工程对象模型(POM,Poject Object Model).一个工程可以依赖其它的工程 ...
- [给自己扫盲]名词解释——LAMP、MEAN、Web应用框架等
名词解释 LAMP The LAMP software bundle (here additionally with Squid). A high performance and high-avail ...
- JavaSE--【转】网络安全之证书、密钥、密钥库等名词解释
转载 http://www.cnblogs.com/alanfang/p/5600449.html 那些证书相关的名词解释(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等 ...
随机推荐
- HDU1013Digital Roots
G - Digital Roots Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- spring mvc Controller与jquery Form表单提交代码demo
1.JSP表单 <% String basePath = request.getScheme() + "://" + request.getServerName() +&qu ...
- Sqli-labs less 48
Less-48 本关与less-46的区别在于报错注入不能使用,不进行错误回显,因此其他的方法我们依旧是可以使用的. 可以利用sort=rand(true/false)进行判断. http://127 ...
- Chapter 4 持久存储数据对象
1.使用with open("filename.扩展名","r/w/rb/wb") as data代替data=open(..);data.close() 打开 ...
- ASP.NET MVC的处理管线
原文:http://www.cnblogs.com/fzrain/p/3651693.html 下面开始解释各个部分: 路由模块 1.在ASP.NET MVC处理管线中的第一站就是路由模块.当请求到达 ...
- 【译】使用 Python 编写虚拟机解释器
[译]如何使用 Python 创建一个虚拟机解释器? 原文地址:Making a simple VM interpreter in Python 更新:根据大家的评论我对代码做了轻微的改动.感谢 ro ...
- C++引用变量(转)
引用变量 c++中引用变量的使用: 定义: int rate=80; int & pt=rate 1.pt 是引用变量,申明引用变量时必须将其初始化.pt 和rate 的值指向相同的内存变量 ...
- java理论基础学习三
Eclipse 是一个开放源码的.基于java的可扩展开发平台 最初主要用来java语言开发,但目前也有人通过插件使其作为其它计算机语言比如C++.python.安卓的开发 下载地址:http://e ...
- SQL Server 2008管理工具出现 远程过程调用失败0x800706be解决方法
解决方法 出现此问题是因为在安装 Visual Studio 2012(VS2012) 时,会自动安装 "Microsoft SQL Server 2012 Express LocalDB& ...
- 数论之高次同余方程(Baby Step Giant Step + 拓展BSGS)
什么叫高次同余方程?说白了就是解决这样一个问题: A^x=B(mod C),求最小的x值. baby step giant step算法 题目条件:C是素数(事实上,A与C互质就可以.为什么?在BSG ...