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 ...
随机推荐
- PHP安装扩展补充说明
上一篇文章中用到了,php的sodium扩展,那么如何安装PHP扩展呢?基于我之前踩过的一些坑,大致整理了几种安装php扩展的方法.已安装sodium为例 1.先做点准备工作,安装sodium依赖 r ...
- 【JavaEE】之MyBatis动态SQL
动态SQL就是在SQL语句中添加一些标签,以完成某些逻辑.通常用到的动态SQL标签有<if>.<choose>.<where>.<trim>.<s ...
- MySQL 高可用架构 之 MHA (Centos 7.5 MySQL 5.7.18 MHA 0.58)
目录 简介 环境准备 秘钥互信 安装基础依赖包 安装MHA组件 安装 MHA Node组件 安装 MHA Manager 组件 建立 MySQL 一主三从 初始化 MySQL 启动MySQL 并简单配 ...
- 【github repo自荐】码农周刊一周精选分类
以下内容节选自我的github码农周刊整理repo,欢迎大家star. 写在最前面的话 作为最初的一批码农周刊的订阅者,不能说经历了其成长,但是确实见证了他的壮大.码农周刊确实从开始第一期的基本上都是 ...
- SpringBoot-自动配置原理(七)
自动配置原理 本节内容分为三个部分 配置文件的写法 分析自动配置原理 @Conditional 一. 配置文件的写法 配置文件可以写什么? 是与/META-INF/spring.factories配置 ...
- kubernetes学习笔记(二)——部署服务
文章目录 (1)创建app (2)创建app的docker镜像 (3)部署app到k8s (4)参考资料 前面一篇文章部署好了minikube环境,这次学习下怎么部署app到kubernetes环境当 ...
- [TimLinux] django CentOS7中django+httpd+mod_wsgi中文UnicodeEncodeError错误
1. 错误 web端访问页面,页面内的view函数要写一个含有中文名字的文件,出现了这个错误.在PyCharm开发调皮环境中不存在这样的错误,把系统部署到http, mod_wsgi时出现. 2. 定 ...
- Cisco packet tracer 的手动添加模块
在PacketTracer 里面,路由器都是基本配置,这和真实设备是相同的 基本配置里面2620只有一个以太网口: 而2621和2811在背板上有两个以太网接口 所以,你在show run里面可以看到 ...
- docker初体验:Docker部署SpringCloud项目eureka-server
Docker部署SpringCloud项目eureka-server 1 创建eureka-server工程 创建父工程cloud-demo,其pom.xml如下: <?xml version= ...
- python学习-文件创建读取
# 文件创建 # 读写# 文件存在?不存在?在操作系统上# 读 read r 写 write w# 打开一个文件# fs = open("xiaojian.txt",encodin ...