趁着周末玩爽了,兴致来了,继续玩玩java(估计再玩下去,就要被java玩了),第六章实在是很长,那就两个阶段来看吧。

1.java 7的增强包装类

这些包装类就是java上的基本类型,只不过人人基本都是C过来的,那么不可避免的有一些惯性的思维。除了int和char类型之外,其余的都是把首字母大写,我靠,这个有点太坑了吧,你哪怕都用JA打头也比这样强,一点特色都没有啊。为了让C语言的基本的类型和包装类之间能够好好的转化,java也很聪明的提供了一些默认的方法,比如xxxvalue()...,有一点要说一下,这个方法会用到缓存的原理,这样避免产生太多的内存分配,是一种不错的策略。

2.toString

如果用过OC的朋友们,可以参考descrbtion方法来理解。这个玩意就是对类的一种描述,可以进行重写,没有什么特殊的意思,可以用来作为类的说明和注释。

3.==和equals

这两个方法但从语言本身来说意思是一样,比较是否相等。不一样的地方在于,==用于变量的时候只要数值一样大,就是返回ture,否则为false。equals是用来作为对象比较的,如果==也用来比较对象呢,很不幸,这个两个意思是一样的,比较两个对象是否是相等,对象怎么才能相等呢,很显然我认为,内存上面地址一样,那就肯定是相等了。书中例子说了一个常量池和新生对象之间比较的问题,这个还是要注意的,毕竟常量还是比较low一点的。

4.类成员

类成员在各种面向对象的编译性语言里面几乎都会涉及,这个玩意就像是给类加了一个尾巴一样,所有的类都有这么一根,而且是唯一的一根尾巴,根据这个特性,单例可以被创造了,单例是很有用的东东,很多的工程都会用到,打个比方说,单例就像是一个收费站一样,只有一个收费入口,每次大家都只能从这个一个地方进,而且你还只有这么一个收费站可以进。

5.final

以前上学的时候感觉这么个东西,简直就是在抄袭C、C++里面的const变量,说白了这个玩意修饰常量的时候,一般就是直接赋值,然后不可改变,如果是修饰对象的时候,那么就不一定了,你不能对这个对象进行简单粗暴的改变,比如直接赋值给这个实例,但是你可以去改变这个实例俩面的某个变量的值,还有一点如果想深入理解,我建议看看const *和* const的区别。在对于局部变量的时候,final的变量是可以先声明,再赋值的。如果修饰方法,那么这个方法就不能被重写了。如果这个方法是私有方法,那么子类依然可以重写,因为私有的方法的范围只能是本类。

6.抽象类

有抽象方法的类一定是抽象类,抽象类里面可以没有抽象方法。这个就比方说,你喜欢吃饼干就是喜欢吃货,但是你是吃货,不一定喜欢吃饼干,就是这么个道理。抽象用abstract来修饰。当你定义了一个抽象方法的时候,必须有子类来进行实现,那么也就是说必须有子类重写实现这个方法,那么这个有什么用呢。比如说你像定义一个交通工具类,那么这个类有个驾驶的方法,但是汽车,自行车的驾驶方法是不一样的,很显然的,你制定了一个标准,让子类们知道要特事特办,而不是千篇一律。同样,还有一点很重要,要说到多态,也就是说,让父类的实例通过子类来进行初始化,而且父类可以直接调用子类的这个实现的抽象方法,这个也就是说上次说的多态。这些都是先生鸡再有蛋的关系,有时候既然有个玩意出现了,那么它肯定是有自己的安排的。

好吧,这个章实好长啊,不看了,碎觉去了。

(疯狂java)第四课(上)的更多相关文章

  1. Java实验--关于课上找“水王”问题分析

    问题的表述就是说有那么一个人,他在一个论坛上发帖,然后每贴必回,自己也发帖.那么这个人在发帖的数目上就超过了整个论坛的帖子数目的一半以上. 我对这个问题一开始的思路是,用SQL语句获取整个列表中的数据 ...

  2. java web(四)文件上传与下载

     一.文件上传原理 1.在TCP/IP中,最早出现的文件上传机制是FTP ,它是将文件由客户端发送到服务器的标准机制:但是在jsp使用过程中不能使用FTP方法上传文件,这是由jsp运行机制所决定. 通 ...

  3. 疯狂JAVA——第四章 流程控制与数组

    4.5 数组类型 数组也是一种类型.它本身是引用类型.例如int是一种基本类型,int[]就是引用类型. 两种定义数组的方式: 1.type[] arrayName; 2.type arrayName ...

  4. (疯狂java)第三课

    最近很忙,都没有看书,罪过... 第五章(面向对象上) 1.类是一种对数据结构的封装,也就是说,一个类在在理解上事存在实际的含义的,比如一个人类,人类也是个类,表明这个类不是家禽类,是有人的特点的生物 ...

  5. java第四课:数组

    1.数组声明时,必须有中括号,但不指定数组的元素个数2.初始化时,必须指定元素个数3.数组元素内容仅能用于声明时初始化,不能用于赋值.如:char[] week; week={'1','2','3'} ...

  6. Java 第四课 对象 类

    1.构造方法可以为private public 2.抽象类可以有构造方法,但是必须在子类中调用(super.构造方法)

  7. 关于转入软件工程专业后第二次java课上作业的某些体会

    今天是第二周的java课. 自从转入了软件工程专业后,在我没有学习c++的基础上,直接开始了学习java的过程.不得不说过程很艰辛.今天下午老师让编写一个随机产生作业的软件.而我的基础差到都不知道如何 ...

  8. 20155205 《Java程序设计》0510课上实践博客

    20155205 <Java程序设计>0510课上实践博客 一.教材代码检查-p98 未提交成功原因: 一开始在iterm中运行,但是结果出错,没有时间提交了.这个提交其实很简单,没有提交 ...

  9. 《疯狂Java:突破程序员基本功的16课》读书笔记-第二章 对象与内存控制

    Java内存管理分为两个方面:内存分配和内存回收.这里的内存分配特指创建Java对象时JVM为该对象在堆内存中所分配的内存空间.内存回收指的是当该Java对象失去引用,变成垃圾时,JVM的垃圾回收机制 ...

随机推荐

  1. Windows下基于python3使用word2vec训练中文维基百科语料(一)

    在进行自然语言处理之前,首先需要一个语料,这里选择维基百科中文语料,由于维基百科是 .xml.bz2文件,所以要将其转换成.txt文件,下面就是相关步骤: 步骤一:下载维基百科中文语料 https:/ ...

  2. Spring Boot提供的特性

    一.导览 本文主要按以下模块介绍spring Boot(1.3.6.RELEASE)提供的特性. SpringApplication类 外部化配置 Profiles 日志 开发WEB应用 Securi ...

  3. Python3 hashlib模块和hmac 模块(加密)

    hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha256, sha384, sha512等常用算法 MD5加密 ...

  4. FastDFS介绍和配置过程

    由于网站使用nfs共享方式保存用户上传的图片,附件等资料,然后通过apache下载的方式供用户访问,在网站架构初期,使用这种简单的方式实现了静态资源的读写分离,但随着网站数据量的增加,图片服务器渐渐成 ...

  5. "Flags mismatch irq" register interrupt handler error

    Question : When you see the log "Flags mismatch irq ............", maybe you use the same ...

  6. canvas制作柱形图/折线图/饼状图,Konva写动态饼状图

    制作饼状图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  7. linux磁盘占用跟每个文件夹大小总和不符

    1.一种情况是删除了大文件但是没有释放出来,因为有进程还在调用使用 最简单的方法是reboot下服务器再对比下: 2.查看服务器空间使用情况 df -h cd / du -sh *

  8. apusic7配置2

    1:<SERVICE class="com.apusic.web.WebService" > <ATTRIBUTE NAME="MaxWaitingCl ...

  9. 论文笔记 《Maxout Networks》 && 《Network In Network》

    论文笔记 <Maxout Networks> && <Network In Network> 发表于 2014-09-22   |   1条评论 出处 maxo ...

  10. 【机器学习】k-近邻算法以及算法实例

    机器学习中常常要用到分类算法,在诸多的分类算法中有一种算法名为k-近邻算法,也称为kNN算法. 一.kNN算法的工作原理 二.适用情况 三.算法实例及讲解 ---1.收集数据 ---2.准备数据 -- ...