JAVA杂记
写在前面:期末考试要来了,对于一个暑假自学了几天JAVA之后一个学期划水的人来说现在就是踏上了JAVA预习之路。下面是自己xjb记的东西,主要是根据老师给的流程图总结的自己认为需要的一些零碎的小知识,翻书跟看网课看到哪就写到哪。好吧期末预习开始~希望考个好成绩回家开开心心过年!!!
好的我开始了从零到考试的短暂JAVA学习之路......
1.构造方法是不能够继承的。
所以子类要重载父类的构造方法,但可在其中用super调用父类的构造方法.构造方法只能用类名写,并且没有返回类型。如果子类没有定义构造方法那么默认它的构造方法为super(),即父类的不带参数的构造方法
2.已经重载了构造方法之后再在它后面定义一个空的构造方法那这个构造方法就不是默认构造方法了
3.类前面要不是写private要不是就是默认的。默认的表示同包可访问,private表示不同包也能访问
4.非访问修饰符:static final abstract
5.用static修饰之后其实跟这个类的对象无关了,因此可以不用对象名称而是直接使用类名在访问static方法或者变量。注意:static方法中,不能访问实例变量,也不能使用super或者this6.final类不能被继承,final方法不能被覆盖,final字段是只读的,如果是final static a则a的默认值为0但是如果只是final a则a没有默认值,只能且仅能给a赋值一次
6.哦莫这里掉了一条.......那就算了吧Hhhhhh
7.接口的所有方法都是public abstract型的
8.接口的实现:类名+implements+接口名,然后里面实现具体的接口方法时一定要在原方法名前面加上public
9.枚举:enum Light={Red,Green,Yellow};
Light light=Light.Red;
switch(light){ case Red: .......break;};
10.接口里也可以有static方法,这个方法就不再是abstract类型的了,而是直接在定义方法的时候就实现它,然后称这样的方法叫做默认方法。子类在implements时不需要再实现它了
11.源文件的名字必须与public类的类同名
12.局部变量不能被访问控制符及static修饰,因为这些其实都是跟类有关的修饰符,但它可以被final修饰成只读的变量
13.JAVA的特点:封装继承和多态
14.instanceof方法:对象名+instanceof+类名判断是不是这种类型,或者这种类型的子类。返回结果是boolean值
15.外部类只能用public或者默认
16.内部类用static的话就跟外部类其实是没什么差别了
17.方法中的内部类:叫做局部类。它可以访问其外部类的成员,不能够访问该方法的局部变量,除非是final型的局部变量
18.匿名类:没有类名,直接用其父类或接口的名字。在定义类的同时就生成了对象。因此可看成是“一次性使用”的类。匿名类直接使用父类的构造方法,有作为方法的参数等用途
19.Lambda表达式:()->结果 实际上就是匿名类的一个实例
能写成Lambda的接口要求包含且只包含一个抽象方法,即函数式接口
通过Lambda表达式接口Converter<F,T>,它是一个泛型接口。convert()方法功能可用于将类型F值转换成类型T值:
@FuctionalInterface
interface Converter<F,T>{
T convert(F from);
}
用Lambda表达式创建接口对象,并使用它的convert()方法将一个字符串转换为整数:
Converter<String,Integer> converter=(from)->Integer.valueOF(from);
Integer converted=converter.convert("2345");
System.out.println(converted);
20.枚举其实是一种特殊的class类型,是语法糖
21.exception:异常
finally:写在最后,不管有没有异常抛出,都要执行的一条语句。
try{
语句组;
}catch(异常类名,异常形式参数名){
异常处理语句组;
}finally{
异常处理语句组;
}
catch语句可以0至多个,可以没有finally语句
finally语句必须执行,就算前面有return break
22.子类异常要放在父类异常前面
23.Object终极父类里面有
clone()方法:要继承Cloneable接口,在类里面用clone()方法,例如:
Car A=(Car)B.clone();
clone()方法返回的是Object型所以要强制转换。
clone()方法在main函数里抛出异常是CloneNotSupportedException
24.日期-时间的类在java.time包中
本地日期:LocalDate
25.compareTo()方法:
<变量1>.compareTo<变量2>返回的值是变量1比变量2的字典顺序,前大后小
26.
public class DescSort implements Comparator<String>{
Arrays.sort(ss,new DescSort());
27.toString()方法可以被改写,但是返回的类型得是String型的!!!
28.Queue接口和PriorityQueue类:后者是前者的一个实现类,它实现的是一种优先队列,优先队列中元素的顺序是根据元素的值排列的Queue接口中有几个方法:add()和offer()都是可以向队列中插入一个元素,前者会有异常抛出的情况,后者是返回false
remove()和poll()都是删除并返回队头元素,即边删边返回值,队空的时候前者会
有异常抛出,后者则是返回null
element()和peek()都是返回队头元素但不删除,队空时前者抛出异常,后者返回null
isEmpty()返回的是布尔值,用于判断是否队空
29.java.time包里面:
Instant.now()方法是静态方法,返回当前的瞬时时间点
Duration.between(Instant A,Instant B)是静态方法,用于计算了两个瞬时点的时间差
eg:
Instant start=Instant.now();
...........
Instant end=Instant.now();
System.out.printf("使用并行流用时:%d毫秒\n",Duration.between(start, end).toMillis());
30.BigInteger类:需要非常大的整数或非常高精度的浮点数,就可以使用。在java.math包中
可以用new BigInteger(String)创建实例,然后使用add(),substract(),multiply(),divide()来进行
算术计算
eg://计算n的阶乘
public static BigInteger factorial(long n) {
BigInteger result=BigInteger.ONE;//表示初始值为1
for(long i=1;i<=n;i++) {
result=result.multiply(new BigInteger(i+" "));
}
return result;
}
(i+" ")是因为:BigInteger类的构造方法是BigInteger(String S)所以必须i+" "来形成一个String
类型作为构造参数
31.List接口:
将数组转换成为List对象:
String []str={"one","two"};
List<String> list=Arrays.asList(str);
也可以直接将数组元素作为asList()方法的参数写在括号中:
List<String> list=Arrays.asList("one","two");
注意:Arrays.asList()方法返回的List对象是不可变的,不能对其进行删除、添加等操作
如果想动其中的元素则需要:List<String>list=new ArrayList<>(Arrays.asList(str));
JAVA杂记的更多相关文章
- java杂记——数组拷贝
这里介绍两种java提供的数组拷贝方法: (1)Arrays提供的copyOf(T src, T desLength)和copyOfRange(T src, int from, int to) (2) ...
- Java杂记9—NIO
前言 非阻塞IO,也被称之为新IO,它重新定义了一些概念. 缓冲buffer 通道 channel 通道选择器 BIO 阻塞IO,几乎所有的java程序员都会的字节流,字符流,输入流,输出流等分类就是 ...
- 【Java杂记】Equals 和 hashCode
equals 和 hashCode含义 equal:判断两个对象是否相等,如果相同,返回true 否则返回false hashcode: 返回一个int数 Object 默认(内部地址转化为一个数字) ...
- Java 数据持久化系列之 HikariCP (一)
在上一篇<Java 数据持久化系列之池化技术>中,我们了解了池化技术,并使用 Apache-common-Pool2 实现了一个简单连接池,实验对比了它和 HikariCP.Druid 等 ...
- Linux环境下如何计算CPU占用率【华为云技术分享】
1.Linux 环境下查看 CPU 信息 1.1.查看 CPU 详细信息 通过 cat /proc/cpuinfo 命令,可以查看 CPU 相关的信息: [root@rh ~]$ cat /proc/ ...
- Java-每日学习笔记(数据库与idea技巧)
Java杂记-2020.07.28 简单记录下今天项目用到的东西还有技术公众号学到的一些知识点 Java事务 idea编码技巧 数据库快速插入100万条数据 Java实现sql回滚 Java事务 事务 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 有关Java的日期处理的一些杂记
在企业应用开发中,经常会遇到日期的相关处理,说实话JDK自带的日期方法很难用.就我个人而言我一般都会采用joda-time来替代JDK自身的日期. 这篇文章是杂记,所以写的比较零散,希望大家不要见怪. ...
- java基础(杂记)
java基础夯实(杂记):1:创建实例对象可以通过无参的构造函数然后调用成员变量去初始化属性,也可以自己定义有参构造方法直接初始化属性,当属性为private时我们可以通过getset方法间接访问:2 ...
随机推荐
- 简单入门Kubernetes
什么是Kubernetes 官网 https://kubernetes.io/ 中文版:https://kubernetes.io/zh/ 个人理解 基于容器技术 分布式架构 弹性伸缩 隔离物理机 和 ...
- 浏览器中的 Event Loop
当我们执行 JS 代码的时候其实就是往执行栈中放入函数,那么遇到异步代码的时候该怎么办?其实当遇到异步的代码时,会被挂起并在需要执行的时候加入到 Task(有多种 Task) 队列中.一旦执行栈为空, ...
- Java中标识符和变量的区别
1.标识符 在JAVA的组成部分中包括了对包.类.方法.变量等的起名,这些名字是要有一定的规则的: 标识符可以包含数字.字母.$._,但是不能以数字开头: 关键字不能用作标识符: 标识符是大小写敏感的 ...
- php mysql 中文乱码解决,数据库显示正常,php调用不正常
一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是 ...
- 《Windows内核安全与驱动开发》阅读笔记 -- 索引目录
<Windows内核安全与驱动开发>阅读笔记 -- 索引目录 一.内核上机指导 二.内核编程环境及其特殊性 2.1 内核编程的环境 2.2 数据类型 2.3 重要的数据结构 2.4 函数调 ...
- 学习ThinkPHP的第21天---关联预载入、关联统计
ThinkPHP关联预载入 预载入的作用是减少执行SQL语句,进而提升程序的性能. public function join(){ //用于监听SQL Db::listen(function ($sq ...
- JVM内运行时数据区
JVM的基本区域: 类加载子系统 运行时数据区(内存区域) 执行引擎 运行时数据区域 方法区(Method Area) 类的所有字和方法字节码,以及一些特殊方法如构造函数,接口代码也在这里定义.简单来 ...
- [TimLinux] Python 元类
1. type函数 name = "This is a string" print(type(name)) # <class 'str'> print("*& ...
- 捅娄子了,写个bug被国家信息安全漏洞共享平台抓到了?
摸不了鱼了 2019 年 11 月 26 日,本来应该是无比平静的一天,开开会,改改bug,摸摸鱼之后等着下班.刷着新闻的间隙,手机的消息提示音响了起来,收到了一条邮件,平时收到邮件我都会选择稍后处理 ...
- 大数据学习笔记——Hbase高可用+完全分布式完整部署教程
Hbase高可用+完全分布式完整部署教程 本篇博客承接上一篇sqoop的部署教程,将会详细介绍完全分布式并且是高可用模式下的Hbase的部署流程,废话不多说,我们直接开始! 1. 安装准备 部署Hba ...