首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java核心技术 1》「建议收藏」

hashCode方法 2、重写toString()方法是也需要重写hasCode方法 虚拟机中的泛型类型信息 Java泛型的突出特征之是在虚拟机中擦除泛型类型 第五章 继承...1、Class类 在程序运行期间,Java运行时系统始终为所有对象维护个运行时类型。...简单算法 Collections.replace(words,”C++”,”java”); 将word列表中为“C++”的值替换成“Java” 批操作 coll1.retainAll(coll2...);//从coll1中删除所有未在coll2中出现的元素,求交集 将列表转换为数组 String[] values = staff.toArray(new String[0]); 栈 java.util.Stack...signal方法只是随机地选择等待集合的个线程,并解除这个线程的阻塞。 同步块 每个Java对象都有个锁,线程可以通过同步方法获得锁,还有另种机制可以获得锁,即进入个同步块。

52810
您找到你想要的搜索结果了吗?
是的
没有找到

知识点总结:Java核心技术1)

Java核心技术1) 、基础概念 1.1 基本程序设计结构 1.1 数据类型 1.1.1 数值类型 1️⃣从java7开始,加上前缀0b或0B就可以写二进制; 2️⃣指数的表示...; 1.3 继承 继承是Java核心技术 super和this 有些人认为super与this引用是类似的概念,实际上这样的比较并不恰当。...函数式接口:只有个抽象方法的接口 在java中,lambda表达式所能做的也只是能转换为函数式接口。...2.5 代理 java的JDK里面提供了动态代理的方案 2.6 Java的异常 异常的层次结构: 所有异常都是由Throwable继承而来, 而下层立即分为两类:Error和Exception...Arrays类的静态方法asList将返回个包装了普通Java数组的List包装器。

33230

Java核心技术2 高级特性 学习笔记(6)

参考:Java核心技术2 高级特性 第十二章 建议只有在必需的时候才使用本地代码,特别是在以下三种情况下,也许可以使用本地代码: 你的应用需要访问的系统特性和设备是通过Java平台无法实现的 已经有大量的测试过和调试过的用另种语言编写的代码...,并且知道如何将其导出到所有的目标平台上 通过基准测试,发现所编写的Java代码比用其他语言编写的等价代码慢很多 Java个用于和本地C代码进行互操作的API,称为Java本地接口(JNI)。...将个本地方法连接到Java程序中: (1)在Java类中声明个本地方法 (2)运行javah以获得包含该方法的C声明的头文件 (3)用C实现该本地方法 (4)将代码置于共享类库中 (5)在Java程序中加载该类库

44120

Java核心技术2 高级特性 学习笔记(5)

参考:Java核心技术2 高级特性  第九章 Java技术提供了三种确保安全的机制: 语言设计特性(对数组的边界进行检查,无不受检查的类型转换,无指针算法等)。...类加载器 Java编译器会为虚拟机转换源指令,虚拟机代码存储在以.class为扩展名的类文件,每个类文件都包含某个类或者接口的定义和实现代码。...在Oracle的Java语言实现中,扩展类加载器和系统类加载器都是用Java来实现的。它们都是URLClassLoader类的实例。...安全管理器与访问权限 旦某个类被加载到虚拟机中,并由检验器检查过之后,Java平台的第二种安全机制就会启动,这个机制就是安全管理器。 安全管理器就是个负责控制具体操作是否允许执行的类。...默认情况下,有两个位置可以安装策略文件: Java平台主目录的java.policy文件 用户主目录的 .java.policy文件 数字摘要 消息摘要 消息摘要是数据块的数字指纹,例如,所谓的SHA1

62320

Java核心技术2 高级特性 学习笔记(3)

参考:《Java核心技术2 高级特性 》第三章 XML是种非常有用的描述结构化信息的技术。 XML格式能够表示层次结构,这比属性文件的平面结构更加灵活。...解析XML文档,Java提供了两种XML解析器: 文档对象模型(Document Object Model,DOM)解析器这样的属性解析器,将读入的XML文档转换为树结构 XML简单API(Simple...类库提供的流机制解析器,老而弥坚的SAX解析器和添加到Java SE6中的更现代化的StAX解析器。...SAX解析器使用的是事件回调,而StAX解析器提供了遍历解析事件的迭代器,后者用起来通常更方便些。...StAX解析器是种拉解析器(pull parser),与安装事件处理器不同,只需要使用基本循环来迭代所有的事件。

63230

Java核心技术2 高级特性 学习笔记(2)

参考:Java核心技术2 高级特性 第二章 对象序列化是以特殊的文件格式存储对象数据的。当存储个对象时,这个对象所属的类也必须存储。...某些数据域是不可以被序列化的,java种很简单的机制来防止这种域被序列化,就是将它们标记成是transient的。如果这些域属于不可序列化的类,也需要将它们标记成transient。...java.nio包使内存映射变得简单,需要做的: 首先,从文件中获得个通道(channel),通道是用于磁盘文件的种抽象,它使我们可以访问诸如内存映射、文件加锁机制以及文件间快速数据传递等操作系统特性...文件锁是由整个Java虚拟机持有的,如果有两个程序是由同个虚拟机启动的,那么它们不可能每个都获得在同个文件上的锁,当调用lock和tryLock方法时,如果虚拟机已经在同个文件上持有了另个重叠锁...,那么这两个方法将抛出OverlappingFileLockException 在些系统中,关闭个通道会释放由java虚拟机持有的底层文件上的所有锁。

64520

Java核心技术2 高级特性 学习笔记(1)

参考:Java核心技术2 高级特性 第Java SE 8的流库 流提供了种让我们可以在比集合更高的概念级别上指定计算的数据视图。...其中种用于操作Comparable元素的流,而另种可以接受个Comparator。 peek方法会产生另个流,它的元素与原来流中的元素相同,但是每次获取个元素时,都会调用个函数。...super T> comparator) // 分别产生这个流的第个和任意个元素,如果这个流为空,会产生个空的Optional对象。...// java.util.stream.Collectors 8 // 产生个将元素收集到列表或集中的收集器。 static Collector predicate) groupingBy方法会产生个映射表,它的每个值都是个列表,如果想要以某种方式来处理这些列表,就需要提供个下游收集器。

1K20

Java核心技术2 高级特性 学习笔记(4)

参考:Java核心技术2 高级特性 第八章 三种用于处理代码的技术: 脚本API使得调用诸如JavaScript和Groovy这样的脚本语言代码 可以使用编译器API在应用程序内部编译Java代码...注解处理器可以在包含注解的Java源代码和类文件上进行操作。...注解不会改变程序的编译方式,Java编译器对于包含注解和不包含注解的代码会生成相同的虚拟机指令。...在Java中,注解是当做个修饰符来使用的,被置于被注解项之前,中间没有分号。...语言模型API,可以使用语言模型API来分析源码级的注解,与呈现类和方法的虚拟机表示形式的反射API不同,语言模型API让我们可以根据Java语言的规则去分析Java程序。

67810

Java核心技术 I 基础知识 学习笔记(7)

参考:Java核心技术 I 基础知识 第七章 异常处理的任务就是将控制权从错误产生的地方转移给能够处理这种情况的错误处理器。...所有的异常都是由Throwable继承而来,但在下层立即分解为两个分支:Error和Exception。 Error类层次结构描述了Java运行时系统的内部错误和资源耗尽错误。...在设计Java程序时,需要关注Exception层次结构。这个层次结构又分解为两个分支。个分支派生于RuntimeException,另个分支包含其他异常。...试图根据给定的字符串查找Class对象,而这个字符串表示的类并不存在 Java语言规范将派生于Error类或RuntimeException类的所有异常称为非受检查异常。...例如a[-1]=0会抛出个ArrayIndexOutOfBoundsException这样的非受查异常 (4)Java虚拟机和运行时库出现的内部错误 总之,个方法必须声明所有可能抛出的受查异常,而非受查异常要么不可控制

51520

Java核心技术Java白皮书)Ⅰ 第Java程序设计概述

第1章 Java程序设计概述 1.1 Java程序设计平台  具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言样,Java满足这些要求.  ...Java种程序设计语言;HTML是种描述网页结构的方式。除了用于在网页上放置Java applet的HTML扩展之外,两者没有任何共同之处。  2.使用XML,所以不需要Java?   ...Java种程序设计语言;   XML是种描述数据的方式。   可以使用任何种程序设计语言处理XML数据,而Java API对XML处理提供了很好的支持。   ...Java在服务器端编程和跨平台客户端应用领域则很有优势。 5.Java只不过是另外种程序设计语言?   Java种很好的程序设计语言,很多程序设计人员喜欢Java胜过C、C++或C#。...个较慢的Java程序与几年前相当快的C++程序相比还要快些。  8.所有的Java程序都是在网页中运行的?   所有的Java applet都是在网页浏览器中运行的。

1.5K100

Java核心技术 I 基础知识 学习笔记(3)

参考:Java核心技术 I 基础知识 类之间最常见的关系有:依赖、聚合、继承 依赖即“use-a”关系,是种最明显的,最常见的关系。...如果个类的方法操作另个类的对象,就说个类依赖于另个类。应该尽可能地将相互依赖的类减至最少。 聚合即“has-a”关系,是种具体且易于理解的关系。聚合辨析意味着类A的对象包含类B的对象。...继承即“is-a”关系,是种用于表示特殊与般关系的。如果类A扩展类B,类A不但包含从类B继承的方法,还会拥有些额外的功能。 访问器方法,只访问对象而不修改对象的方法有时称为访问器方法。...Java中方法参数的使用情况: 个方法不能修改个基本数据类型的参数(数值型或布尔型) 个方法可以改变个对象参数的状态 个方法不能让对象参数引用个新的对象 静态导入: import static...java.lang.System.*; 在源文件顶部,添加条指令,就可以使用System.类的静态方法和静态域,而不必加类名前缀。

37120

Java核心技术 I 基础知识 学习笔记(8)

参考:Java核心技术 I 基础知识 第八章 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用。 泛型使用类型参数,使得代码有更好的可读性。...个泛型类就是具有个或多个类型变量的类。 泛型方法可以定义在普通类型也可以定义在泛型类中。 类型变量放在修饰符的后面。...无论何时定义个泛型类型,都自动提供了个相应的原始类型。原始类型的名字就是删去类型参数后的泛型类型。擦除类型变量并替换为限定类型(无限定类型的变量用Object)。...类型擦除与多态发生了冲突,要解决这个问题,需要编译器在对应类中生成个过桥方法。 Java泛型转换的事实: 虚拟机中没有泛型,只有普通的类和方法。 所有类型参数都用它们的限定类型替换。...使用Java泛型时需要考虑的些限制: 不能用基本类型实例化类型参数,比如,不能使用double,只能使用Double 运行时类型查询只适用于原始类型。

45030

Java核心技术 I 基础知识 学习笔记(9)

参考:Java核心技术 I 基础知识 第十四章 多进程与多线程有哪些区别呢?本质的区别在于每个进程拥有自己的整套变量,而线程则共享数据。...在有些操作系统中,与进程相比,线程更轻量级,创建、撤销个线程比启动新进程的开销要小的多。...例如,如果Bank类有个静态同步的方法,那么当该方法被调用时,Bank.class对象的锁被锁住,因此,没有其他线程可以调用同个类的这个或者任何其他的同步静态方法。 内部锁和条件存在些局限。...包括: 不能中断个正在试图获得锁的线程 试图获得锁时不能超市 每个锁仅有单的条件,可能是不够的 在代码中应该使用哪种?Lock、Condition对象还是同步方法?...在许多情况下可以使用java.util.concurrent包中的种机制,他会为你处理所有的加锁。

31720

Java核心技术 I 基础知识 学习笔记(4)

参考:Java核心技术 I 基础知识 个对象变量可以指示多种实际类型的现象被称为多态。在运行时能够自动地选择调用哪个方法的现象被称为动态绑定。...由个公共超类派生出来的所有类集合被称为继承层次。在继承层次中,通过某个特定类到其祖先的路径被称为该类的继承链。 假设要调用x.f(args),隐式参数x声明为类C的个对象。...种是在抽象类中定义部分抽象类方法或不定义抽象类方法,这样就必须将子类也标记为抽象类,另种是定义全部的抽象方法,这样来,子类就不是抽象的了。 类即使不包含抽象方法,也可以将类声明为抽象类。...下面给出编写个完美的equals方法的建议: (1)显式参数命名为otherObject,稍后需要将它转换成另个叫做other的变量。...(2)检测this与otherObject是否引用同个对象 if(this==otherObject) return true; 这条语句只是个优化,实际上,这是种经常采用的形式。

51240

Java核心技术 I 基础知识 学习笔记(5)

参考:Java核心技术 I 基础知识 反射库提供了个非常丰富且精心设计的工具集,以便编写能够动态操纵Java代码的程序。...这项功能被大量地应用与JavaBeans中,它是Java组件的体系结构。 能够分析类能力的程序成为反射。...反射是种功能强大且复杂的机制。 在程序运行期间,Java运行时系统始终为所有的对象维护个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。虚拟机利用运行时类型信息选择相应的方法执行。...然后有很多常见的场,例如,访问null引用,都属于未检查异常。编译器不会查看是否为这些错误提供了处理器。毕竟,应该精心地编写代码来避免这些错误的发生,而不要将经历花在编写异常处理上。...如果竭尽全力了还是发生了异常,编译器就要求提供个处理器。

32810

Java核心技术 I 基础知识 学习笔记(1)

参考  Java核心技术 I 基础知识 Java: 简单性、面向对象、分布式、健壮性、安全性、体系结构中立、可移植性、解释型、高性能、多线程、动态性。...分布式 Java个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件样。...健壮性 Java的设计目标之在于是的Java编写的程序具有多方面的可靠性,Java投入了大量的经历进行早期问题检测、后期动态的运行时检测,并消除了容易出错的情况,Java和C++最大的不同在于Java...体系结构中立 编译器生成个体系中立的目标文件格式,这种经过编译后的代码,只要有Java运行时系统,这些编译后的代码可以在许多处理器上运行。...然而,  虚拟机有个选项,可以将执行最频繁的字节码序列翻译成机器码,这过程被称为及时编译。 Java虚拟机还有些其他的优点,可以检测指令序列的行为,从而增强其安全性。

56020

Java核心技术 I 基础知识 学习笔记(2)

参考:Java核心技术 I 基础知识 Unicode和char类型 码点是指与个编码表中的某个字符对应的代码值。在Unicode标准中,码点采用十六进制书写,并加上前缀U+。...这样的设计可以使得我们很迅速的直到个代码单元是个字符的编码还是个辅助字符的第或第二部分。 Java中,char类型描述了UTF-16编码中的个代码单元。 运算符优先级 ? ?...码点与代码单元 Java字符串由char值序列组成。char数据类型是个采用UTF-16编码表示Unicode码点的代码单元。...大多数的常用Unicode字符使用个代码单元就可以表示,而辅助字符需要对代码单元表示。 ? ?...大数值 如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal,这两个类可以处理包含任意长度数字序列的数值。

55320

Java核心技术 I 基础知识 学习笔记(6)

参考:Java核心技术 I 基础知识 接口,主要用来描述类具有什么功能,而并不给出每个功能的具体实现。个类可以实现个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象。...如果先在个接口中将个方法定义为默认方法,然后又在超类或另个接口中定义了同样的方法。Java规则如下: (1)超类有限。如果超类提供了个具体方法,同名且有相同的参数类型的默认方法会被忽略。...如果个超接口提供了个默认方法,另个接口提供了同名且参数类型(不论是否默认参数)相同的方法,必须覆盖这个方法来解决冲突。 回调是种常见的程序设计模式。...lambda表达式是个可传递的代码块,可以在以后执行次或多次。 lambda表达式由3个部分: 个代码块 参数 自由变量的值,这是指非参数且不再代码中定义的变量。...作为Java安全模型的部分,对于系统类和从因特网上下载下来的类,可以使用不同的类加载器。 个Class对象数组,每个元素都是需要实现的接口。

48620
领券