java编程思想笔记
加加大了
这个作者很懒,什么都没留下…
展开
-
类型信息
运行时类型信息使得可以在程序运行时发现和使用类型信息。1.为什么需要RTTI(运行时类型信息)这是一个类层次的结构图,基类位于顶部,派生类向下扩展。面向对象的基本目的是让代码只操纵对基类的引用,这样如果要添加一个新的类来扩展程序,就不会影响到原来的代码。该例子中的shape接口动态绑定draw(),目的是让客户端程序员使用繁华的shape引用来调用draw()。draw在所有的派生类都会被覆盖,并且由于他是被动态绑定的,所以即使是通过繁华的shape引用来调用,也产生正确的行为。基类中的draw原创 2020-06-20 19:32:43 · 209 阅读 · 0 评论 -
字符串知识点总结
1.不可变StringString对象时不可变的,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,包含修改的字符串内容,最初的String对象没有变化。public class Immutable{ public static String upcase(String s){ return s.toUpperCase();} public static void main(String[] args){ String q="howdy";原创 2020-06-19 15:34:50 · 1041 阅读 · 0 评论 -
通过异常处理错误
通过异常处理错误Java中的异常处理的目的是通过使用少于目前数量的代码来简化大型、可靠地程序的生成,并且通过这种方法可以使得更加自信。概念对于异常处理的实现可以追溯到二十世纪六十年代的操作系统,身子BASIC语言中的on error goto语句。“异常”这个词有“我对次干道意外”,问题出现了,也许不清楚如何处理,但你的却直到不应该置之不理,要停下来看卡是不是有别人或在别的地方,能够处理这个问题。只是当前的环境中没有做狗的信息来解决这个问题,所以把这个问题提交到一个更高级别的环境中,着这里将作出正确的原创 2020-06-16 17:09:15 · 156 阅读 · 0 评论 -
注解
注解也称为元数据,是我们在代码中添加信息提供了一种形式化的方法,使得可以在稍后的某个时刻非常方便的使用这些数据。注解在一定程度上是在把元数据与云代码文件结合在一起,而不是保存在外部文档中。注解使得我们能够以将由编译器来测试和验证的格式,存储有关程序的额外信息。注解可以用来生成描述符文件,或是新的类定义,并且有助于减轻编写“样板”大妈的负担。通过使用注解,可以将这些元数据保存在java源代码中,利...原创 2020-04-01 20:58:51 · 164 阅读 · 0 评论 -
多路分发
由于Java只支持单路分发。如果要执行的操作包含了不止一个类型未知的对象时,则Java的动态绑定机制只能处理其中一个的类型。所以必须自己判断其他的类型,从而实现自己的动态绑定行为。解决上面问题的办法是多路分发...原创 2020-03-26 21:58:21 · 147 阅读 · 0 评论 -
枚举类型
关键字enum可以将一组具名的值的有限集合创建为一种新的类型,这些具名的值可以作为常规的程序组件使用。基本enum特性调用enum的values()方法可以遍历enum实例。values()方法返回enum实例的数值,而且该数组中的元素严格保持其在enum中声明时的顺序,一次你可以在在循环中使用values()返回的数组。下面的例子演示Enum提供的一些功能:ordinal()方法...原创 2020-03-17 20:24:29 · 1193 阅读 · 0 评论 -
Preferences
Preferences是一个键值对,存储在一个节点层次结构中。PreferencesAPI与对象序列化相比,前者与对象持久性更密切,它可以自动存储和读取信息。只能用于小的、受限的数据集合(基本类型和字符串),每个字符串的存储长度不能超过8K。下面是一个例子:这里使用userNodeForPackage(),也可以选择用systemNodeForPackage(),虽可进行任意选择,但最好将“u...原创 2020-03-17 15:19:09 · 335 阅读 · 0 评论 -
XML
对象序列化的一个重要限制是它只是java的解决方法:只有java程序才能反序列化这种对象。一种更具互操作性的解决方案是将数据转换为XML格式,这样就可以被各种的平台和语言使用。作为一个实例,假设一个Person对象包含姓和名,将他们序列化到XML中,下面的Person类有一个getXML()方法,使用XOM产生被转换的XML的Element对象的Person数据,还有一个构造器接收Element...原创 2020-03-17 11:08:44 · 78 阅读 · 0 评论 -
对象序列化
当你创建对象时,只要需要就会一直存在,但是在程序终止时,无论如何都会继续存在。Java的对象序列化将那些实现了Serializable接口的对象转换为一个字节序列,并能够在以后将这个字节序列完全恢复为原来的对象。这意味着序列化机制能够自动弥补不同操作系统之间的差异。利用对象序列化可以实现轻量级持久性,“持久性”意味着对象的生存周期并不取决于程序是否正在执行;它可以生存于程序的调用之间,通过将一...原创 2020-03-14 20:48:34 · 212 阅读 · 1 评论 -
输入和输出
I/O类库中常使用的流这个抽象概念,代表任何有能力产出数据的数据源对象或有能力接收数据的接收端对象。InputStream类型作用是用来表示那些从不同数据源产生输入的类,这些数据源包括字节数组、String对象、文件、管道、一个有其他种类的流组成的序列,以便可以将它们收集合并到一个流内以及其他数据源。OutPutStream该类别的类决定输出所要去的目标,字节数组、文件或管道。Filte...原创 2020-03-03 22:50:49 · 307 阅读 · 0 评论 -
JavaI/O系统
File类file类技能代表一个特定文件的名称,又能代表一个目录下的一组文件的名称。如果指的是一个文件集,则可以对此集合调用list()方法,这个方法会返回一个字符数组。很容易就可以立即返回的是一个数组而不是某个更具有灵活性的类容器,因为元素的个数是固定的,所以如果想取得不同的目录列表,只需要在创建一个不同的File对象就可以。目录列表器DirFilter类实现了FilenameFilter...原创 2020-03-02 21:09:40 · 80 阅读 · 0 评论 -
java容器实用方法
实用方法Java中有大量的用于容器的实用方法被表示为java.util.Colelctions类内部的静态方法。List的排序和查询所使用的方法与对象数组所使用的相应方法有相同的名字与语法,只是用Collections的方法代替Arrays的方法而已。Collection或Map的同步控制java容器的快速报错机制:一种保护机制,能够防止多个进程同时修改同一个容器的内容,...原创 2020-02-28 22:23:54 · 100 阅读 · 0 评论 -
选择接口的不同实现
选择接口的不同实现容器之间的区别是归结为由什么在背后支持他们。如,ArrayList和LinkedList都是list接口,因此无论选择哪个,基本的List操作都是相同的。然而,ArrayList底层有数组支持而LinkedList是由双向链表实现,其中的每个对象包括数据的同时还包括指向链表的前一个与后一个袁术的引用。因此如果要经常在表中插入或删除元素,LinkedList就合适,否则应该使用速...原创 2020-02-28 20:18:40 · 260 阅读 · 0 评论 -
Map
对于MAP的理解映射表的基本思想是:他维护的是键值对的关联,因此可以使用键查找值。标准java类库中的map的几种基本实现包括:HashMap、TreeMap、LinkedHashMap、WeakHashMap、ConcurrentHash、IdentityHashMap。这些都有相同的基本接口Map,但是行为特性不同,表现在效率、键值对的保存及呈现次序、对象的保存周期、映射表如何在多线程程序中...原创 2020-02-26 19:47:34 · 321 阅读 · 0 评论 -
第七章:复用类
复用类和java中的所有事物一样,问题解决一般围绕类进行通过创建新类复用代码,不需要从头写。有两种方法达到这个目的。其中第一种是只需要在新的类中产生现有类的对象,由于新的类是由现有类的对象所组成,因此该方法称为组合。该方法只是复用现有程序代码的功能而非形式。第二种是按照现有类的类型创建新类,无需改变现有类的形式,采用现有类的形式并在其中添加新的代码,该方法称为继承。组合对于非基本类型的对象,...原创 2020-01-17 15:37:53 · 177 阅读 · 0 评论 -
第六章:访问权限控制
访问权限控制包:库单元类库实际上是一组类文件,每个文件都有一个public类,以及任意数量的非public类。因此每个文件都有一个构件。当编写一个java源文件时,此文件通常称为编译单元,每个编译单元都必须有一个后缀名.java,在编译单元内部则可以有一个public类,该类名称必须与文件名称相同。每个编译单元只能有一个public类,否则编译器不会接受。当该编译单元中还有额外的类,在包之...原创 2020-01-09 21:39:33 · 184 阅读 · 0 评论