Java核心技术点之泛型】的更多相关文章

1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我们当然希望能够重用之前写过的那个针对String对象的ArrayList实现. 在Java 5之前,ArrayList的实现大致如下: public class ArrayList { public Object get(int i) { ... } public…
摘要 本文根据<Java核心技术 卷一>一书的第八章总结而成,部分文章摘抄书内,作为个人笔记. 文章不会过于深入,望读者参考便好. 为什么要使用泛型程序设计 泛型程序设计(Generic programming) 意味着编写的代码可以被很多不同类型的对象所重用. 类型参数的好处 在没有泛型类之前,ArrayList类只维护一个Object引用的数组: public class ArrayList { private Object[] elementData; // 用于存放数据 public…
1.泛型程序设计 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用.例如:不希望为了聚集String和Integer对象分别设计不同的类.(个人觉得此处说的聚集译为:创建一个对象,属性可以为String和Integer类型.但是却有着相同的行为或属性) 代码如下: public class StringTest { private String age; public String getAge() { return age; } public void setAge(String a…
1. 概述     Java集合框架由Java类库的一系列接口.抽象类以及具体实现类组成.我们这里所说的集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据.集合类型就是容纳这些对象的一个容器.也就是说,最基本的集合特性就是把一组对象放一起集中管理.根据集合中是否允许有重复的对象.对象组织在一起是否按某种顺序等标准来划分的话,集合类型又可以细分为许多种不同的子类型. Java集合框架为我们提供了一组基本机制以及这些机制的参考实现,其中基本的集合接口是Collection接口,其他相关的…
过去一个多月了吧.才囫囵吞枣地把这书过了一遍.话说这书也够长的,一共706页.我从来不是个喜欢记录的人,一直以来看什么书都是看完了就扔一边去,可能有时候有那么一点想记录下来的冲动,但算算时间太紧,很多也是有始无终,毕竟在之前研究研究程序也只是自己的一个爱好而已,但没有想到签了一个程序员的工作.唉,这老天也太捉弄人了吧,让一个学电气工程(电力电子方向)学生毕业之后去写代码,而且是与硬件完全无关的代码.真是白念几年大学了.行了,就行发这么多牢骚吧. <java核心技术>有两个卷,我只看了卷一,从我…
java核心技术卷一 java基础类型 整型 数据类型 字节数 取值范围 int 4 +_2^4*8-1 short 2 +_2^2*8-1 long 8 +_2^8*8-1 byte 1 -128-127       浮点类型 数据类型 字节数 取值范围 小数位数 float 4 10^-38~10^38和-10^-38~-10^38 小数位数6-7 double 4 10^-308~10^308和-10^-308~-10^308 15位小数         boolean 类型和char 类…
<Java核心技术卷一>是唯一可以和<Java编程思想>媲美的一本 Java 入门书.单从技术的角度来看,前者更好一些.但上升到思想层面嘛,自然后者更好,两者的偏重点不同. 思想不会变,所以<Java编程思想>还停留在第 4 版(2007 年):而技术是要更新迭代的,所以<Java核心技术卷一>来到了第十版(2016 年). 我们来看一下<Java核心技术卷一>第十版的大纲. 前九章:包括 "Java 程序设计概述".&quo…
目录 小白学Java:老师!泛型我懂了! 泛型概述 定义泛型 泛型类的定义 泛型方法的定义 类型变量的限定 原生类型与向后兼容 通配泛型 非受限通配 受限通配 下限通配 泛型的擦除和限制 类型擦除 类型擦除造成的限制 小白学Java:老师!泛型我懂了! 泛型概述 使用泛型机制编写的程序代码要比哪些杂乱地使用Object变量,然后再进行强制类型转换地代码具有更好的安全性和可读性. 以上摘自<Java核心技术卷一> 在谈泛型的定义之前,我先举一个简单又真实的例子:如果我想定义一个容器,在容器中放同…
Tomxin7 如果你有想看书的计划,但是还在纠结哪些书值得看,可以简单看看"观赏指南"系列,本文会简单列出书中内容,给还没有买书的朋友提供一个参考. 前言 秋招过去很久了,虽然在学校的时候有恶补java基础,但是都是为了面试而准备的,有些技术并没有进行全面的了解,再加上java现在疯狂的更新版本,很多新东西没有了解过,所以就打算再过一遍.java的书籍很多,也不想重复的看,所以就买了两本写的比较系统的<java核心技术卷I II>,本篇文章主要是想分享一下卷I,如果你正打…
这是一篇备忘性质的读书笔记,仅记录个人觉得有用的知识点 本文作为一个目录索引,部分章节跳过 吐槽:此书中文翻译有不少地方不太通顺,这种情况我要把英文版对应的部分也读一遍才能明白(说实话,英文里的从句表达能力确实比中文清晰不少,不过从句多了之后也不太好理解) 虽然翻译这么厚一本书确实比较辛苦,很多英文长句确实不好翻译,翻译得不太通顺就算了,但是有很多地方翻译出来和原书的意思不一样就过分(甚至是沿袭的错误,第9版的中文版里错得一样,很怀疑每版有没有重新校对) P.S.这也是很多引进的大部头技术书籍的…
<Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1.1 定义子类 5.1.2覆盖方法 5.1.3子类构造器 5.1.4 继承的层次 5.1.5 多态 5.1.6 理解方法调用 5.1.7 阻止继承:final类和方法 5.1.8 强制类型转换 5.1.9 抽象类 5.1.10 受保护访问 5.2 Object: 所有类的超类 5.2.1 equals方法 5…
数组和泛型容器有什么区别 要区分数组和泛型容器的功能,这里先要理解三个概念:协变性(covariance).逆变性(contravariance)和无关性(invariant). 若类A是类B的子类,则记作A ≦ B.设有变换f(),若: 当A ≦ B时,有f(A)≦ f(B),则称变换f()具有协变性: 当A ≦ B时,有f(B)≦ f(A),则称变换f()具有逆变性: 如果以上两者皆不成立,则称变换f()具有无关性. 在Java中,数组具有协变性,而泛型具有无关性,示例代码如下: Objec…
1. 为什么要使用内部类     内部类就是定义在一个类内部的类,那么为什么要使用内部类呢?主要原因有以下几点:第一,内部类中定义的方法能访问到它所在外部类的私有属性及方法:第二,外部类无法实现对同一包中的其他类隐藏,而内部类可以做到这一点:第三,匿名内部类在我们只需使用该类的实例依次时可以有效减少我们的代码量.关于以上三点,我们在下文中会举出具体例子进行进一步的说明.   2. 如何使用内部类 (1)使用内部类访问外围类私有变量     在内部类中,我们能够访问到它所在外部类中的私有实例变量及…
本篇博文会从代理的概念出发,介绍Java中动态代理技术的使用,并进一步探索它的实现原理.由于个人水平有限,叙述中难免出现不清晰或是不准确的地方,希望大家可以指正,谢谢大家:) 一.概述 1. 什么是代理 我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品.关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的:其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次对客户群体的“过滤”.我们把微商代理…
Java 核心技术之一程序设计概述 一.   Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向对象的语言: 网络技能:Socket,FTP,Http,URL编程简单: 健壮性:避免指针错误使用: 安全性:构建防病毒防篡改系统: 体系结构中立:字节码: 可移植性: 解释性:可以解释任何移植了的字节码: 高性能: 多线程 动态性: 二.   Internet 和 Java Applet 在网页中…
InputStream和OutputStream构成了输入/输出类层次结构的基础.用于按字节进行读写.而与之处在同一等级的Reader/Writer同样作为抽象类定义了用于对字符进行读取的类层次结构,是基于两个字节的Unicode码元的读取. inputStream的抽象方法abstract int read(),每次读入一个字节并返回一个int值,在遇到文件尾的时候返回-1.所以可以用其子类FileInputStream进行文件字符读取: FileInputStream f = new Fil…
在面向对象编程语言中,多态算是一种泛化机制.例如,你可以将方法的参数类型设置为基类,那么该方法就可以接受从这个基类中导出的任何类作为参数,这样的方法将会更具有通用性.此外,如果将方法参数声明为接口,将会更加灵活. 一.什么是泛型 在学习泛型之前,我们先看一个实例来真实的体验一下泛型带来的好处? package study.javaenhance; import java.util.ArrayList; import java.util.Collection; public class Gener…
package cn.temptation.test; import java.util.ArrayList; import java.util.Iterator; public class Sample01 { public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add("中国"); arrayList.add("美国"); // 下句会…
Java Collections API和泛型 数据结构和算法 学会一门编程语言,你可以写出一些可以工作的代码用计算机来解决一些问题,然而想要优雅而高效的解决问题,就要学习数据结构和算法了.当然对数据结构和算法的理解在开发优秀的软件时是非常重要的,与其同等重要的是在我们的开发工作中应用软件工程中的一些良好准则.邹欣老师(博客,微博,豆瓣)的<现代软件工程讲义>提到三个公式: 程序 = 数据结构+算法 软件 = 程序 + 软件工程 软件企业 = 软件 + 商业模式 我们学习编写程序是要来解决实际…
从JAVA核心技术卷轴Ⅰ:基础知识中整理得到. import java.lang.reflect.AccessibleObject; import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.List; /** * 一种公认提供toString的方法 */ public…
继上一篇Java核心技术第五章——1.类.超类.子类(1) 6.重载解析 假如调用ClassName.Method(args) 1.编译器列出类ClassName所有名为Method的方法. 2.编译器将查看调用方法提供的参数类型(args). 3.根据参数类型匹配所有名为Method的方法. 4.如果编译器没有找到与参数类型匹配的方法,或者发现经过类型转换后有多个方法与之匹配,就会报告一个错误. 7.阻止继承:final类和方法. 1.final类:当你不希望别人利用某个类定义子类.那么则使用…
之前对Java的基础知识有过学习,现在开始学习<Java核心技术卷1>,将一些新学的知识点,做简要记录,以备后续回顾: 1.double (1)所有的“非数值”都认为是不相同的 if(x==Double.NaN) //永远是true (2) 可以通过Double.isNaN 来判断是不是“非数值” public static void main(String[] args) { int a=9; float c=3.4f; double d=5.6D; System.out.println(D…
1. 谈谈你对java平台的理解 首先是java最显著的两个特性,一次写入处处运行:还有垃圾收集器gc,gc能够对java内存进行管理回收,程序员不需要关心内存的分配和回收问题 然后谈谈jre和jdk的区别,jre包含了jvm和java类库:jdk除了jvm和java类库,还包含了一些java工具集 常见的垃圾收集器有: Serial GC:串行收集,垃圾回收时会阻塞工作线程 Parallel GC:并行收集,多线程收集,停顿时间短,吞吐量高 CMS:使用标记清除算法,多线程进行垃圾收集 G1:…
<java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组: 数据类型:4 种整形,2种浮点型,1种字符类型 字符类型:char "A"表示含有A的字符串,其末尾含有字符串结束符,'A'则表示单个A字符 特殊字符需要转义,如: 转义序列 名称 Unicode值 \b 退格 \u0008 \t 制表 \u0009 \n 换行…
<java核心技术卷i>第一章主要内容包括三点: 1:Java白皮书的关键术语:描述Java的十一个关键字: 2:Java applet 3 :关于Java的常见误解   1:第一章:Java白皮书的关键术语:描述Java的十一个关键字: 简单性,面向对象,分布式,健壮性,安全性,体系结构中立,可移植性,解释型,多线程,高性能,动态性 部分介绍如下: 简单性:Java语法相当于C++,为一个“纯净版本”, Java去掉了C++中的头文件,指针运算(指针语法),结构,联合,操作符重载,虚基类等.…
一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort/parallelSort. –查找:从数组中查找一个元素, binarySearch. –批量拷贝:从源数组批量复制元素到目标数组, copyOf –批量赋值:对数组进行批量赋值, fill. –等价性比较:判定两个数组内容是否相同, equals. (二)实现 import java.util.…
一:static特殊关键字用处 –变量 –方法 –类 –匿名方法 二:静态变量:类共有成员 –static变量只依赖于类存在(通过类即可访问),不依赖于对象实例存在. –所有的对象实例,对于静态变量都共享存储在一个共同的空间(栈) class Potato{ ; public void setnumber(int n) { this.number=n; } } public class StaticTest { public static void main(String[] args) { S…
目录 第9讲 | 对比Hashtable.HashMap.TreeMap有什么不同? 典型回答 考点分析 知识扩展 Map 整体结构 有序 Map HashMap 源码分析 容量.负载因子和树化 精选留言 Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap M…
目录 第6讲 | 动态代理是基于什么原理? 典型回答 考点分析 知识扩展 反射机制及其演进 动态代理 精选留言 Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 杨晓峰-Java核心技术-6 动态代理 反射 MD.md *** 目录 === 第6讲 | 动态代理是基于什么原理? 编程语言通常有各种不同的分类角度,动态类型和静态类型就是其中…
<Java核心技术 卷II 高级特性(原书第9版)> 基本信息 原书名:Core Java Volume II—Advanced Features(Ninth Edition) 作者: (美)Cay S. Horstmann    Gary Cornell 译者: 陈昊鹏 王浩 姚建平 丛书名: Java核心技术系列 出版社:机械工业出版社 ISBN:9787111442509 上架时间:2014-2-21 出版日期:2014 年2月 开本:16开 页码:1 版次:1-1 所属分类:计算机 &…