
Java基础
Da_Bawang
我变强了 也变秃了
展开
-
Java跳出多重嵌套循环
方式一:最外层循环前面加上标记ok,利用break ok; 可以跳出循环 ok:for (int i = 0; i < 10; i++) { for (int j = 0; j < 100; j++) { if (i == 9) { break ok; } }}方式二:通过外层的循环条件表达的结果可以收到里层循...原创 2018-05-14 08:51:57 · 829 阅读 · 0 评论 -
Java内存堆、内存栈、常量池三者的关系
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。) 3. 堆:存放所有new出来的对象。 4. 静态域:存放静态成员(static定义的) 5. 常量池:存放字符串常量和基本类型常量(pub...转载 2018-05-14 08:57:16 · 1114 阅读 · 1 评论 -
String 部分方法剖析
@Date:2018年08月13日16:55:06split将输入字符串断开成字符串对象数组,断开边界由正则表达式确定替换操作replace/replaceAll/appendReplacement 通过正则表达式来替换结果compareTo(String anotherString)基于每个字符的unicode编码值,比较两个字符串的字典顺序。小于零则pub...原创 2018-09-23 20:12:22 · 169 阅读 · 0 评论 -
String 的相关知识点
@Date:2018年08月17日13:18:44为什么String final不可变String值是保存在常量池中,一旦创建是无法修改的。好处:a.线程安全,b.支持字符串常量池数据共享,节省资源,提高效率(因为如果已经存在,这个常量就不会再创建,直接拿来用)String、StringBuffer、StringBuilder区别区别StringStringBuil...原创 2018-09-23 20:13:03 · 196 阅读 · 0 评论 -
JDK1.8 Optional 源码剖析
Optional容器对象,可能包含也可能不包含非null值。如果存在值,{@ code isPresent()}将返回{@code true}并且{@code get()}将返回该值。提供依赖于是否存在包含值的其他方法,例如{@link #orElse(java.lang.Object)orElse()}(如果值不存在则返回默认值)和{@link #ifPresent (java.util....原创 2018-09-23 20:13:50 · 326 阅读 · 0 评论 -
冒泡排序、插入排序、选择排序
一、排序方法与复杂度归类几种最经典、最常用的排序方法:冒泡排序、插入排序、选择排序、快速排序、归并排序、计数排序、基数排序、桶排序。复杂度归类冒泡排序、插入排序、选择排序 O(n^2)快速排序、归并排序 O(nlogn)计数排序、基数排序、桶排序 O(n)二、如何分析一个“排序算法”?算法的执行效率最好、最坏、平均情况时间复杂度。时间复杂度的系数、常数和低阶。比较次数...原创 2018-11-04 09:19:51 · 211 阅读 · 0 评论 -
如何实现LRU淘汰缓冲算法
缓冲淘汰策略:指缓存被用满时清理数据的优先顺序先进先出策略(FIFO:First in,First out)最少使用策略(LFU:Least Frequently Used )最近最少使用策略(LRU:Least Recently Used)链表:通过‘指针’将一组零散的内存块串联起来使用。适合插入、删除操作频繁的场景,查询时间复杂度较高。链表分类单链表循环链表双...原创 2018-11-04 09:21:27 · 331 阅读 · 0 评论 -
为什么很多编程语言中数组都从0开始编号
定义数组(array)是一种线性表数据结构。用一组连续的内存空间,来存储一组具有相同类型的数据。如何实现随机访问线性表(数据排成像一条线一样的结构)连续的内存空间和相同类型的数据寻址公式a[i]_address = base_address + i * date_type_size容器的优势,eg:ArrayList将数组的操作细节封装起来,支持动态扩容(...原创 2018-11-04 09:24:06 · 298 阅读 · 0 评论 -
Java 1.8 日期和时间 API
Instant:时间戳Duration:持续时间,时间差LocalDate:只包含日期,比如:2016-10-20LocalTime:只包含时间,比如:23:12:10LocalDateTime:包含日期和时间,比如:2016-10-20 23:14:21Period:时间段ZoneOffset:时区偏移量,比如:+8:00ZonedDateTime:带时区的时间Clock:时钟...原创 2018-12-17 22:41:31 · 436 阅读 · 0 评论