Java(16-19)
0、 正则表达式:
str.matches() //判断字符串是否匹配
str.split() // 根据给定正则表达式的匹配规则。拆分此字符串,返回字符串数组。
str.replaceAll() //将符合规则的字符串内容,全部替换为指定字符串。
1、DateFormat类常用方法: (日期/时间格式化子类的抽象类)
DateFormat df = new SimpleDateFormat("yyyy年MM月dd日")。
.format() 作用:用来将Date对象转换成String。 .parse() 作用:把string转换成date对象。
2、Calendar类 .getInstance()作用:使用默认时区和语言环境获得一个日历。 get/set/add方法
3、注意事项:西方星期的开始为周日,中国为周一。在Calendar类中,月份的表示是以0-11代表1-12月。
4、Date 日期时间类 new Date().getTime()
5、高级算法:日历设置到指定年份的3月1日,用add向前偏移1天,获取到的天数,29则是闰年。
6、SimpleDateFormat
7、lang包里的类,不需要导入,Integer.parseInt(string); Integer.toString(int)
8、自动装箱:基本数据类型,直接变成对象。自动拆箱:对象中的数据变回基本数据类型。 共同弊端:有可能出现空指针的异常。 in.inValue();
9、数据在byte范围内,JVM不会重新new对象。127以内,节约内存。
10、system.exit(0); 退出虚拟机,所有程序全停止。
11、ssystem.gc();收对象垃圾 arrayCopy(); 数组复制
12、Math.ceil(参数);返回大于或等于参数d的最小整数。
12、Math.floor(参数);返回小于或等于参数d的最大整数。
13、Math.pow(2,3) // 8.0 double类型,2的三次方。
14、Math.sqrt(参数) //开方 参数为负数,返回NaN
15、 Arrays.sort(参数) // 对数组升序排序 (快速排序)
16、binarySearch() 数组二分法搜索 ,返回元素在数组中的索引。元素不存在,返回的是 (-插入点-1);
17、Array.toString(arr) // 将数组变成字符串。
18、BigInteger // java.math 超过long取值范围的整数,使用BigInteger对象 计算。 其构造方法:传递字符串,没有长度限制,数字格式
19、BigInteger的四则运算,通过调方法实现,计算的结果也只能是BigInteger对象;java可以三元运算,减少代码量。 加法:b1.add(b2); 新建BigInteger对象接收返回值。减法:b1.subtract(b2); 乘法:b1.multiply(b2); 除法:b1.divide(b2); ======>>完成超级大数字运算 (大数据)
20、数值运算中,结果的无限接近与拥有是两回事。java浮点计算精度失真原因:计算机二进制中,表示浮点数不精确造成。
21、超级大型的浮点数据,提供高精度的浮点运算,BigDecimal() //// 提高运算精度,不要直接带浮点数算四则运算,构造方法传String类型参数。
22、day18> Collection 集合的基类。多态使用,Collection接口方法:clear(),contains(),toArray(),使用Object[]接收 返回值,remove(),方法返回boolean,删除成功返回true。
23、java三种长度表现形式:1、数组.length 字符串.length() 集合.size() ==返回值都是int类型 。 获取文件的大小 => file.length()
24、集合框架图: Collection 集合祖宗,擒贼先擒王。
25、Iterator迭代器 :作用:帮助我们做集合遍历的。集合的多种,迭代器可屏蔽不同集合取出方法,变成一种方法取出。
26、这是一个很严重的思想就是,面向接口思想编程。Iterator it = array.iteractor() ,,运行结果就是Iteractor接口的实现类的对象。ArrayList重写方法iteractor(),返回了Iteractor接口实现类的对象。it是接口的实现类的对象,调用hasNext 和 next 集合元素迭代。迭代器是迭代集合的通用模式。(Iteractor接口,找实现类) next()指针初始指向-1索引。
27、HashSet(),无序集合。
28、集合迭代器 元素的向下转型:Collection 不加类型,就会存储为Object类型对象。需要调用子类特有的方法,必须向下转型 String s = (String) it.next();
29、增强for循环 for(int i : arr){} 好处:代码简洁,方便对容器遍历。弊端:没有索引,不能操作容器内元素。总结:在不需要改变集合内元素的情况下,可以使用。即只用于遍历,可以调用对象的方法。 s.length(); //字符串增强for遍历 (jdk 1.5以后引入)
30、(18_13) 集合没有限制,可以存储任意类型。 Java引 入泛型,来解决Collection 存储自动装箱的类型,调用方法报错问题。 col.add(1) for(String s : col){ sop(s.length() } //会报错。整型int 是调length方法。
31、ClassCastException 类型转换异常。
32、泛型的概念:使用集合时,必须明确集合中元素的类型,这种方式就称为泛型。
33、一切为了程序的安全性:集合当中加入泛型,固定住它的数据类型,是非常有必要的。
34、java靠编译手段来保证程序的安全性,不符合的数据类型,就不让你编译通过。编译后的class文件是没有泛型的,所以说java是假泛型,java反编译回来是没有泛型的。据说c++就有真泛型。
35、(18_16)泛型类。 举例子:ArrayList<Integer> arr = new ArrayList<Integer>(); 泛型类 ArrayList<E> E为指定的数据类型,贯穿其所有方法属性调用的返回值类型。
36、(17-1) 8种基本类型包装类,作用:扩展基本类型的功能,由浏览器传过来的字符串,可以转int数据类型。 Integer i = parseInt("12");//字符串类型转int类型。同理!
37、(18_18)泛型的接口:先实现接口,不理会泛型, public class ArrayList(E) implements List(E){} 调用者的好处: new ArrayList<String>(); //实现类实现接口的同时,也指定了数据类型。
38、泛型的好处:保证程序的安全性,避免类型强转的麻烦(classcastexception:数据类型转换异常)。将转换异常提前至编译时期,那么开发人员就知道编译失败====, 避免出现强转自动装箱导致调用方法编译失败等问题出现的可能。
39、编译时期是给开发者看的。运行时期开发者看不了。
40、泛型的通配符:? 以图举例:
41、集合框架==》泛型的限定: 本案例,父类固定Employee,但是 子类可以 无限 ?
private static void iteractor(ArrayList<? extends Employee> array) {}
? extends Employee :限制的是父类,上限限定,可以传递Employee,传递它的子类对象。
? super Employee :限制的是子类,下限限定,可以传递Employee,传递它的父类对象。
42、List接口派系,继承Collection接口。List接口特点:有序、索引、可重复元素。与set刚好相反。其实现类有ArrayList、LinkedList。
43、java的String是引用类型,所以不能在判断语句里直接用 == ,而是要用 equals()方法。
44、迭代器的并发修改异常 ConcurrentModificationException 产生原因:就是在遍历的过程中,使用集合的方法修改了集合的长度。这是不允许的。
45、LIist集合存储数据的常用存储结构有:堆栈、队列、数组、链表。
46、数组查找快(平时用的多),增删慢,而链表查找慢,增删快。
47、查询用ArrayList(底层数据结构是数组) ,增删用LinkedList(底层数据结构是链表)。两者共同点,线程不安全。
48、ArrayList取代了jdk1.0的vector同步数组,。set接口特点不重复元素,无索引,可用于去重需求。
49、set集合底层本质是借用了map集合。
50、set接口的实现类是HashSet (哈希表)。
51、集合分两大派系:Collection 和 Map实例。
52、在内存中,数组复制是一个相当耗费内存资源的动作。
53、哈希表(链表数组结合体)---------------数据结构
54、new HashSet(初始容量,加载因子) ///初始容量默认16,加载因子默认0.75。
55、字符串对象的哈希值是自己的算的。重写方法。
56、哈希表存储对象的依据:哈希值和equals。 新对象存储过程,其计算哈希值对比表中哈希值,有就再对比equals,如果为true就是重复元素,如果为false,就存储进对应的桶中。让前一个对象记住当前存储对象的地址。(挂桶)
57、(集合框架)哈希表的存储自定义对象。
58、自定义对象重写HasCode和equals
59、LinkedHashSet 基于链表的哈希表实现 ,具有顺序,存储和取出的顺序相同,线程不安全,运行速度快。双向链表特点,保证了迭代的顺序。
60、对象存储哈希表,去掉重复的元素,依据对象自己的hashCode,equals重写目标,让对象中属性值name,age 如果属性值相同,得到相同的哈希值。
61、LinkedHashSet 自身特性:具有存储顺序,存储和取出的顺序相同。维护着一个运行于所有条目的双重链接列表。线程不安全的集合,运行速度快。
62、双向链表含义:第一条:已有的记住后来的。第二条链:后来的记住已有的。
63、LinkedList<String> ll = new LinkedList<String>();//链表底层实现 特点:查询慢增删快。
ArrayList<String> al = new ArrayList<String>();//数组结构底层实现 特点:查询快增删慢。
64、8种基本数据类型以及包装类重写hasCode和equas就是为了判断有无重复元素。
65、hasCode和equals方法的面试题:
66、当equals方法被重写时,通常有必要重写hacCode方法,以维护hasCode方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
Java(16-19)的更多相关文章
- Java(19)接口知识及综合案例
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201629.html 博客主页:https://www.cnblogs.com/testero ...
- Java设计模式(19)状态模式(State模式)
State的定义:不同的状态,不同的行为:或者说,每个状态有着相应的行为. 何时使用状态模式 State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If else ...
- JNI(Java Native Interface)
一.JNI(Java Native Interface) 1.什么是JNI: JNI(Java Native Interface):java本地开发接口 ...
- Java (二)基于Eclipse配置Commons IO的环境
上一篇:Java (一)下载APACHE Commons IO 一.新建一个Java Project 二.使用鼠标右键点击工程,选择New > Folder 三.在Folder name输入文件 ...
- Java (三)APACHE Commons IO 常规操作
上一篇:Java (二)基于Eclipse配置Commons IO的环境 例1:查看文件.文件夹的长度(大小). 1 import java.io.File; 2 3 import org.apach ...
- C#调用JAVA(二)调用方法
上期我们创建了jar包并放到了unity中,那么我们继续 如果您还没有看上一期请先看上一期,这是链接 C#调用JAVA(一)制作jar包 - 执著GodShadow - 博客园 (cnblogs.co ...
- C#调用JAVA(一)制作jar包
1 //AndroidJavaClass类可以理解为某一个类 2 //AndroidJavaObject类可以理解为某一个类中的一个对象 打开AS,创建一个空项目 输入项目名,包名,本地路径以及语言之 ...
- Java 16 新功能介绍
点赞再看,动力无限.Hello world : ) 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 程序猿阿朗博客 已经收录,有很多知识点和系列文章. Ja ...
- Java常用类笔记(学习尚硅谷java基础教程)
一.Java根类Object类1.toString()方法 1)以文本对象返回,故toString()的定义为public String toString() {} 2)默认的字符串输出是:包.类名@ ...
- Java SE 19 新增特性
Java SE 19 新增特性 作者:Grey 原文地址: 博客园:Java SE 19 新增特性 CSDN:Java SE 19 新增特性 源码 源仓库: Github:java_new_featu ...
随机推荐
- iOS - APP审核Guideline 2.5.1被拒,使用了私有API
最近iOS 审核被拒,说是使用了私有API:com.apple.springboard.lockcomplete 具体内容如下: 发件人 Apple . Performance: Software R ...
- swiper监听左滑还是右滑动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- PHP----实现压缩HTML
很多时候,我们在做优化处理的时候,会考虑压缩HTML,去掉HTML里面的空格和换行. 具体实现: public function change(){ echo "change"; ...
- 第一次php之旅
话说起来,我也是刚接触php不久,刚开始是因为想自己做一个从前端到后台完整的网站,所以去学后台技术,在各种语言的选择中,由于php语言的简单,易学,功能强大,开发速度快等原因,最终我选择了php! 一 ...
- Redis 如何保持和MySQL数据一致
1. MySQL持久化数据,Redis只读数据 redis在启动之后,从数据库加载数据. 读请求: 不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取 写请求: 数据首先都写到数 ...
- js生成二维码以及点击下载二维码
js生成二维码 jquery.qrcode.js可以快速使用页面生成二维码.但改项目有两个小问题:1.不支持中文:2.不支持二维码中间生成图片. 支持中文的jquery-qrcode jquery.q ...
- iOS UIScrollView 3种分页方法,间隔实现
基础知识参考 http://tech.glowing.com/cn/practice-in-uiscrollview/ https://stackoverflow.com/questions/9367 ...
- POJ2387-Till the cows come home【最短路】
A - Til the Cows Come Home POJ - 2387 Bessie is out in the field and wants to get back to the barn t ...
- 最长上升子序列 OpenJ_Bailian - 2757 dp模板
第一种是用以前状态更新当前状态(人人为我) 第二种是用当前状态更新以后状态(我为人人) 都是n^2代码: 对于人人为我的更新方法,可以用数据结构储存“人人”对其进行线性\二分优化. ; int a[m ...
- HDFS Users Guide
Purpose This document is a starting point for users working with Hadoop Distributed File System (HDF ...