java学习之路--零碎的知识笔记
java运算符:
自增自减运算符:
int b = ++a; 拆分运算过程为: a=a+1=4; b=a=4, 最后结果为b=4,a=4 前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
int d = --c; 拆分运算过程为: c=c-1=2; d=c=2, 最后结果为d=2,c=2 后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算 。
逻辑运算符:假设布尔变量A为真,B为假
- && 与逻辑运算符 当两个变量同时为真时,条件为真 A&&B 假
- || 或逻辑运算符 当两个变量任何一个为真时,条件为真 A||B 真
- ! 非逻辑运算符 反转变量状态的逻辑状态,如果条件为真,加上非运算符,条件为假 !(A&&B) 真
java StringBuffer和StringBuilder类:
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
super 与 this 关键字
- super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
- this关键字:指向自己的引用。
java抽象类和抽象方法
抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。
在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。
如果你想设计这样一个类,该类包含一个特别的成员方法,该方法的具体实现由它的子类确定,那么你可以在父类中声明该方法为抽象方法。Abstract关键字同样可以用来声明抽象方法,抽象方法只包含一个方法名,而没有方法体。
声明抽象方法会造成以下两个后果
①:如果一个类包含抽象方法,那么该类必须是抽象类。
- ②:任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
- ③:继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象。
- 总结
1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
4. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。
5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
java 接口:
- 接口是一个抽象类型,是抽象方法的集合,一个类通过实现接口的方式,来实现接口的抽象方法。
- 接口和类很相似,类中包含属性和方法,而接口中则包含要实现的方法。
- 出发实现接口的类是抽象类,否则要实现接口中的所有方法。
- 接口无法被实例化,但是可以被实现,一个实现接口的类必须实现接口中的所有方法,否则必须被声明为抽象类。
- 接口与类的区别
- ①一个接口和类都可以包含多个方法
- ②接口不能用于实例化
- ③接口没有构造方法
- ④接口中所有的方法必须是抽象方法
- ⑤接口不能被继承,可以被实现
- ⑥接口支持多继承
- 接口和抽象类的区别
- ①抽象类的方法可以有方法体,接口中没有方法体
- ②抽象类中的成员变量可以是各种类型的,而接口中的成员变量只public static final 类型的。
- ③接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
- ④一个类只能继承一个抽象类,而一个类却可以实现多个接口。
- 接口的实现
- 当类实现接口的时候,必须实现接口中的所有方法,否则该类只能声明为抽象类。
- 类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。
java学习之路--零碎的知识笔记的更多相关文章
- 新篇章之我的java学习之路下
昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...
- Java学习之路(转)
Java学习之路(书籍推荐) 一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...
- java学习之路之javaSE基础2
java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...
- JAVA学习之路与大家分享
这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...
- Java学习需要掌握的一些知识
Java学习需要掌握的一些知识: <一>1.Jvm 部分Jvm 内存模型.Jvm 内存结构.Jvm 参数调优.Java 垃圾回收<二>Java 基础部分1.必须会使用 List ...
- Java 学习之路 -- day00
Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...
- (转)如何学习Java技术?谈Java学习之路
51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...
- Java学习之路:不走弯路,就是捷径
1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...
随机推荐
- easyui,datagrid表格,行内可编辑
最近用到easyui,需要表格内编辑,但是我同一个页面有多个表格,把官方的代码修改了一下,如下: HTML代码 <table id="dg" class="easy ...
- react 常见api 使用(长期更新)
1.父子通信 1.1 父-子 props 父组件: class myPage extends React.Component { render() { return ( <div> {/* ...
- linux环境变量问题
在使用jenkins进行自动化部署的时候遇到一个问题,通过jenkins进行自动化部署的时候执行java命令时,提示java不知道是啥命令,确定是装好了java的,猜测是环境变量问题,但是在/etc/ ...
- hadoop mkdir: Cannot create directory /usr. Name node is in safe mode.
今天在hdfs上面创建文件夹的时候报了:org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name ...
- Android真机测试,连接到本地服务器的方法
1. 前言 作为一名Android开发者,不管怎么说,都会经历使用Android真机来测试连接本地服务器这样的事情.这里所说的“本地服务器”大多数时候指的是:搭载有某种服务器软件的PC,例如搭载有To ...
- MongoD 语法
MongoD 语法 1.常用 1 .查看有哪些库 > show dbs; admin 0.000GB config 0.000GB local 0.000GB 2 .当前库,只存在于内存中 &g ...
- Yii2 console执行定时脚本
为什么要做crontab脚本 我们的项目使用YII2开发,并不是很大的一个电商平台,pv.IP访问量并不是很高,但客户的数据是日积月累已经产生100万条数据了,之前更新订单等数据使用定时脚本直接访问内 ...
- datatable拆分多个
/// <summary> /// 分解数据表 /// </summary> /// <param name="originalTab">需要分 ...
- 大数据学习之HDFS基本API操作(下)06
hdfs文件流操作方法一: package it.dawn.HDFSPra; import java.io.BufferedReader; import java.io.FileInputStream ...
- 洛谷 p5020 货币系统 题解
传送门 一个手动枚举能过一半点而且基本靠数学的题目(然而我考试的时候只有25分) 读清题目后发现就是凑数嘛,.... 对啊,就是凑数,怎么凑是重点啊.. 于是就绝望了一小时手动枚举n从1到5的情况 吐 ...