java随记2
1、Arrays
java8里新添加了parallelSort等parallel开头的方法,表示利用cpu并行的能力
2.面向对象
如果继承树里的某个类要被初始化时,系统将会同时初始化该类的所有父类
子类不会获得父类的构造器,但子类构造器可以使用super调用父类构造器。但super调用也必须出现在构造器第一行,所以super和this不会同时出现。
另外,不管是否使用super调用来执行父类构造器,子类构造器总会调用父类构造器一次。因为系统会在执行子类构造器前,隐式调用父类无参数的构造器,父类会先调用更父类的构造器,所以最先执行的总是java.lang.Object类的构造器。
多态
java引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可能出现所谓的多态。
当把一个子类的实例对象直接赋给父类引用变量时,这个引用变量的编译类型是父类,运行类型是子类,所以当运行时调用该引用变量的方法时,总是表现出子类的方法,于是:相同类型的变量,调用同一个方法时,呈现多种不同的行为特征,这就是多态。
与方法不同的是,变量则不具有多态性,调用时依然是父类的变量值。
引用变量在编译阶段只能调用其编译类型所具有的方法,但运行时则执行它运行时类型所具有法方法,因此,多态时,可通过反射来调用父类所不具有的子类法方法。
递归
public static int fn(Integer n){
if(n.equals(0)){
return 1;
}
if(n.equals(1)){
return 4;
}
return 2*fn(n-1)+fn(n-2);
}
1、如果一个包装类和一个基本类型比较大小,或者是两个基本类型进行比较大小,直接用==就好;
如果是两个包装类进行比较大小,那么使用equals(),返回值是true,false,或者使用Xxx.compare(),返回值是1,0,-1。(这里的equals()方法,已经被包装类重写过了,不是Object的equals())
2、==和equals方法的区别
当使用==来判断两个变量是否想等时,比较的是栈内存中的值,如果两个变量是基本类型变量,且都是数值类型,那么栈内存中个存放的是基本类型变量的值,所以只要两个基本类型变量的值想等,就会返回true。但对于两个引用类型变量,由于栈内存中存放的是变量的引用,所以只有当这两个引用类型变量指向同一个对象是,==才会返回true。==不可用于比较类型上没有父子关系的两个对象。
equals()方法是Object类的一个实例方法,但这个方法和==没区别。不过String类和基本类型的包装类重写了这个equals()方法,不再比较引用对象的引用地址,而是比较所引用的值。
系统自动为接口里的成员变量添加public static final修饰符.
所以接口里定义int MAX = 50;和定义 public static final int MAX = 50;的意义是一样的.
3.Lambda表达式示例
Runnable r = () -> {
for (int i = 0; i < 100; i++) {
System.out.println(i);
}
};
new Thread(r,"线程1").start();
new Thread(r,"线程2").start();
Lambda表达式只能实现一个函数式接口(只有一个抽象方法的接口)
跟匿名内部类有很大的相似处
4.强制垃圾回收
System.gc()
Runtime.getRuntime().gc();
重写finalize()方法,可以看出是否执行了垃圾清理
java随记2的更多相关文章
- Java入门记(五):容器关系的梳理(下)——Map
注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见M ...
- Java入门记(四):容器关系的梳理(上)——Collection
目录 一.Collection及子类/接口容器继承关系 二.List 2.1 ArrayList 2.1.1 序列化的探讨 2.1.2 删除元素 2.1.3 调整大小 2.2 Vector和Stack ...
- Java入门记(三):初始化顺序
初始化顺序的规则 1.在一个类的对象实例化时,成员变量首先初始化,然后才调用构造器,无论书写顺序.如果调用构造器前,没有显式初始化,那么会赋默认值. 这样做法的原因可以理解为:构造器执行时可能会用到一 ...
- Java入门记(二):向上转型与向下转型
在对Java学习的过程中,对于转型这种操作比较迷茫,特总结出了此文.例子参考了<Java编程思想>. 目录 几个同义词 向上转型与向下转型 例一:向上转型,调用指定的父类方法 例二:向上转 ...
- Java入门记(一):折腾HelloWorld
HelloWorld,学习每门语言的第一步.有人戏称,这些年的编程生涯就是学习各种语言的HelloWorld,不知是自谦还是自嘲.目前所在的公司使用Java作为主要开发语言,我进行语言转换也大半年了, ...
- Java琐记
svn项目倒入,所选的文件夹一定是src上面以及的:然后eclipse会自动创建一个项目,项目名称就是src上级文件夹的名称:然后会按照路径下的文档结构如导入到eclipse的结构中: 被标记为// ...
- java 随记
后台开发的过程中积累的关于java的杂记 架构 SSH框架 为什么要分层? 因为分层使代码变得清晰,容易写也容易阅读,更重要的是让代码扩展性更好,层与层之间的改动不会互相影响 各层的分工 dao--与 ...
- java随记 2月16
1.a=a+b 等于 a+=b ,且a+=b隐含强制类型转换 2.^ 表示异或 两个二进制同号为假,异号为真 即 0^0=0,1^1=0,0^1=1 3.三元运算 布尔表达式 ?表达式 ...
- java面试记很多次还是记不住的问题
1.java底层如何实现多态 https://blog.csdn.net/fan2012huan/article/details/51007517 (1)在常量池中找到方法调用的符号引用 (2)查看P ...
随机推荐
- php 投票
1.投票主界面(问题界面) <?php$db = new Mysqli("localhost","root","root"," ...
- 更新yum源导致yum不可用
当安装和yum配置相关的包后报yum模块找不到 yum install -y yum-utils device-mapper-persistent-data lvm2 yum list|grep yu ...
- 刷题总结——shortest(ssoi)
题目: 题目背景 SOURCE:NOIP2015-SHY-3 题目描述 给定一张 n 个点的有向带权完全图,和一个数组 a[] ,请按顺序删除数组中的点,请求出在删除点 a[i] 以前,所有未删除点对 ...
- Uva5009 Error Curves
已知n条二次曲线si(x) = ai*x^2 + bi*x + ci(ai ≥ 0),定义F(x) = max{si(x)},求出F(x)在[0,1000]上的最小值. 链接:传送门 分析:最大值最小 ...
- jsp 详解request对象
request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例. 序号 方 法 说 明 1 object ...
- python虚拟环境使用
Window 下创建python的虚拟环境 下载工具 pip install virtualenv 创建虚拟环境目录 # 注意此命令创建的虚拟环境目录是在当前目录下 virtualenv testen ...
- Day 8 Linux之Day8
Linux 之 Day 8 一.Linux网络原理及基础设置 1. 使用ifconfig命令来维护网络 1) ifconfig命令的功能:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址. ...
- PAT (Advanced Level) 1086. Tree Traversals Again (25)
入栈顺序为先序遍历,出栈顺序为中序遍历. #include<cstdio> #include<cstring> #include<cmath> #include&l ...
- 教妹学 Java:大有可为的集合
00.故事的起源 “二哥,上一篇<泛型>的反响效果怎么样啊?”三妹对她提议的<教妹学 Java>专栏很是关心. “有人评论说,‘二哥你敲代码都敲出幻想了啊.’” “呵呵,这句话 ...
- 树莓派静态IP配置
一.设置隐藏无线静态ip地址 1.用命令产生wpa_psk:wpa_passphrase “MT-WiFi” “@boozhong.com” 2.sudo nano /etc/network/inte ...