1、数组

复制数组,可以调用数组对象的clone方法

float[] floatArray = {5.0f,1.5f};

float[] arrayCopy = floatArray.clone();

System.out.println(Arrays.toString(floatArray) + "-Original");

System.out.println(Arrays.toString(arrayCopy) + "-Copy");

System.out.println("Modifying the second element of the orginal array.");

floatArray[1] = 20f;

System.out.println(Arrays.toString(floatArray) + "-Original after modify");

System.out.println(Arrays.toString(arrayCopy) + "-Copy after modify");

2、类

类的主体中可以定义0个或多个属性、0个或多个构造函数、0个或多个方法

与C++不同的是java并不提供析构函数

3、import语句

import语句与C或C++中的#include语句不同,import语句并不会加载代码

4、继承

子类可以继承超类中除私有属性外的所有属性

C++允许继承自多个类,然而Java并不支持多继承。

当创建子类对象时,所有的弗雷对象都会被创建。构造函数首先从继承层次的顶层类开始,然后一路向下直到子类被实例化。

5、多态

分为编译时多态和运行时多态

其中编译时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的函数,通过编辑之后会变成两个不同的函数。

运行时多态是动态的,它是通过动态绑定来实现的,也就是我们所说的多态性。

无论什么时候,只要你跨越类层次结构使用相同的方法名,就成该方法被子类覆盖,该特性叫做方法重写。编译器会通过查看方法调用的对象引用来进行判定。如果找到,编译器会简单地调用该方法;如果找不到,就在超类中寻找该方法。如果仍然找不到,就继续查找层次结构,直到发现该方法的声明为止。

5.1 异构集合

5.2 检测对象类型 instanceof

5.3 防止方法重写、防止子类化 final

6、方法重载

类中具有相同名称,参数不同

构造函数调用,this和super都必须在第一行,所以不能同时使用

7、访问修饰符

8、静态方法的访问限制

因为静态方法在被调用时不需要类的实例,所有在静态方法中不能使用this或super引用。

静态方法不能被子类重写

9、静态初始化器

static{

radius= 5;

}

多个静态初始化器按照他们被指定的顺序执行

也可以通过定义私有的静态方法来初始化静态字段。

注意事项:a.JVM将静态初始化器的大小限制为64KB。b.测试静态初始化器中的代码通常称为开发者的噩梦。

10、接口

接口中的所有成员默认为public和abstract。当没有为方法提供实现时,方法是“抽象”的。

不包含任何方法的接口被称为标记接口,已知的典型例子是Java API中定义的Serializable接口。

相同功能,但实现有很大区别

接口被编译成.class文件并且被与加载类相同线程加载

接口的所有方法默认都是共有的,不能为接口中声明的方法应用其他的任何访问修饰符。

11、抽象类

抽象类允许提供接口的部分实现,并且将剩余的实现留给其他开发者。

抽象类不能被实例化,但是它们可以被子类化。

12、嵌套类

在另一个类中定义的类被称为嵌套类

classOuterClass {

...static classStaticNestedClass {

...

}classInnerClass {

...

}

}

内部类:非静态嵌套类(局部类和匿名类)

局部类 :在方法体中定义的内部类成为局部类,局部类的作用域被限定为方法的作用域

匿名类:方法体中声明的内部类,没有名称

注意事项

内部类可以使用任何可用的访问修饰符进行声明,私有的内部类只能在外部类的范围内访问。

内部类可以是接口,然后由另一个内部类实现这个接口。

13、异常处理

java的finally块的设计缺陷,finally块允许包含一条跳转语句。而C#禁止使用

Java SE 7提供了带资源的try语句

try(expression) {

blockStatements

}

throw和throws

自定义异常

打印堆栈跟踪 e.printStackTrace();

14、Java I/O

Java中的刘有两种类型:面向字节的刘和面向字符的流

File.Path

打印消息之后,可以通过调用System类的exit方法优雅地终止程序 System.exit(0);

字节流(文件复制)

字符流

BufferedReader和BufferedWriter类

不需要自己生命字符缓冲区,提供了内置的缓冲区

字符流处理Unicode字符集中的任何字符,而字节流仅限于ISO Latin-1的8位字节

使用字符流的程序可以很容易的进行国际化,因为他们不依赖与特定的字符编码

因为字符流类使用内部缓存,所以在本质上它们比字节流更高效

访问主机文件系统

目录列举 DirectoryStream

过滤目录列表 DirectoryStream/Fileter

读/写对象

Java的I/O库提供了允许针对流读取或写入用户自定义对象的类。ObjectInputStream和ObjectOutputStream这两个类提供了此功能。

如果想读写对象,那么对象所属的类就必须实现这个接口。Serializable接口没有任何方法,所以实现仍然为空。

15、高级I/O

面向字节的流类

ByteArrayInputStream/ByteArrayOutputStream和DataInputStream/DataOutputStream(证券交易)

PushbackInputStream类,当想要在读取缓冲区中提前知道下一个字符是什么时,可以使用(unread)(打印式计算器)

SequenceInputStream类,允许依次读取多个文件,并把它们转换为单个输出流。(证券交易历史数据分析)※实现动态数组Vector类

PrintStream类,可以打印出各种数据。在打印过程中,使用平台默认的字符编码将所有字符转换为字节

面向字符的流类

CharArrayReader/CharArrayWriter类,toCharArray(String),用于返回包含字符串元素的字符数组。用CharArrayReader实例访问字符串的各个元素。

Console类,Java SE 6添加了Console类来增强和简化命令行应用程序。

StreamTokenizer类,只处理InputStream对象,可以把输入流解析为标记(token),可用于统计单词和数字个数

面向对象的流

Externalizable接口有两个回调方法:readExternal和writerExternal,可以在这两个方法中执行加密和解密操作。Externalizable接口要求类处理自己的序列化操作

嵌套对象的序列化,只要嵌套对象实现了Serializable或Externalizable接口,就会随顶级对象一起被序列化

对象版本化,Java在编译过程中,会为每个可序列化的类分配唯一标识符(serialversionUID),修改类的定义时,已保存的对象状态与类的新版本是不兼容的。所以需要定义原始类的serialversionUID

java 7编程高级进阶_Java7编程高级进阶-积累(1)相关推荐

  1. java自动化测试语言高级之多线程编程

    java自动化测试语言高级之多线程编程 Java 多线程编程 Java 给多线程编程提供了内置的支持. 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 ...

  2. java自动化测试语言高级之网络编程

    java自动化测试语言高级之网络编程 文章目录 java自动化测试语言高级之网络编程 Java 网络编程 Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来 ...

  3. JAVA实现数据库编程第三章_[数据库]使用Java实现数据库编程—03 第三章 高级查询(一)...

    [数据库]使用Java实现数据库编程-03 第三章 高级查询(一) 0 2018-07-21 03:01:10 1.修改表:(1)修改表名语法: ALTER TABLE RENAME [ TO ] : ...

  4. 黑马程序员_java高级篇网络编程TCP实战Day8(上)

    ---------------------ASP.Net+Android+IOS开发.Net培训.期待与您交流! ----------- 黑马程序员_java高级篇网络编程TCP实战Day8(上) ( ...

  5. linux 运维高级脚本生成器,Linux运维系列,Shell高级脚本自动化编程实战

    课程文件目录: Linux自动化运维系列 Shell高级脚本自动化编程实战 [6.1G] ┣━━01.Shell基础概述 [315.1M] ┃ ┣━━1-1 Shell脚本体系概述.mp4 [154. ...

  6. 高级Bash脚本编程指南《Advanced Bash-Scripting Guide》 in Chinese

    <Advanced Bash-Scripting Guide> in Chinese <高级Bash脚本编程指南>Revision 10中文版 在线阅读链接:http://ww ...

  7. [iOS]Advanced Memory Management Programming Guide 高级内存管理编程指南(官方文档翻译)

    Advanced Memory Management Programming Guide - 高级内存管理编程指南(官方文档翻译) 版权声明:本文为博主原创翻译,如需转载请注明出处. 新博客文章地址: ...

  8. 高级shell脚本编程之函数库、信号与陷进、文件处理、数组、安全性

    高级shell脚本编程之函数库.信号与陷进.文件处理.数组.安全性 1.函数库 把所有需要用到的函数都放到一个文件中,然后每个脚本的开头包含这个文件.例如: #!/bin/sh scope(){ lo ...

  9. 【中英双语】高级Scala函数式编程

    [中英双语]高级Scala函数式编程 成为顶级 Scala 程序员,这样您就可以使用 Spark.Akka.Cats 或任何 Scala 工具!此教程共13.5小时,中英双语字幕,画质清晰无水印,源码 ...

最新文章

  1. parcel react_如何使用Parcel捆绑React.js应用程序
  2. 短文本相似度算法研究
  3. 谷歌的量子计算机如何改变世界
  4. 模拟一:STEMA 考试选择题模拟练习试卷(初级组)及答案 + 自我解题笔记
  5. CUDA:根据本地电脑的NVIDIA显卡驱动版本去正确匹配待安装的CUDA版本之详细攻略
  6. html注释的爱情故事,爱情故事”为你的婚礼贴上专属标签
  7. php 移植 arm 精简,arm linux 移植 PHP
  8. 【C#桌面应用】第一节:使用C#开发桌面应用的准备
  9. 第8章 数据库的分库分表
  10. c语言课程设计--拼图游戏,C语言课程设计_拼图游戏.pdf
  11. 始终都要覆盖toString()方法
  12. display:inline-block的应用及bug
  13. CAD单行文本数字求和
  14. php error unexpected,PHP异常Parse error: syntax error, unexpected错误解决方法
  15. java并发包和类总结-JUC总结
  16. 红色警戒怎么修改服务器,INI修改全教程【申精】
  17. Android 华为手机10.1 启动service Service starting has been prevented by iaware or trustsbase **
  18. #前端开发我们应该具备的硬核技能
  19. 蓝队工具:使用VirusTotal API校验样本
  20. CCNA(一)-详解ISO/OSI参考模型与TCP/IP参考模型

热门文章

  1. HDU 2389 Rain on your Parade(二分匹配+Hopcroft-Carp算法模板题)
  2. 合利宝实际控制人即将易主:海科金集团接盘仁东控股
  3. 二、伊森商城 环境 虚拟机配置 p3
  4. 秋招经验总结(私企,外企,国企)
  5. ZYT and LBC
  6. zoho邮箱收信服务器,配置邮件交付 - Zoho Mail 设置
  7. 千锋重庆Java基础之Java拼图游戏的代码
  8. C#打开SDE数据库的几种方式总结
  9. 中国氯化聚氯乙烯市场调研及投资策略分析报告2022-2028年
  10. HTML观鸟网小练习