![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础
文章平均质量分 59
巡山小妖008
这个作者很懒,什么都没留下…
展开
-
打印Java数组最优雅的方式
在逛 Stack Overflow 的时候,发现了一些访问量像安第斯山一样高的问题,比如说这个:打印 Java 数组最优雅的方式是什么?访问量足足有 220W+,想不到啊,这么简单的问题竟然有这么多程序员被困扰过。来回顾一下提问者的问题吧:在 Java 中,数组虽然是一个对象,但并未明确的定义这样一个类,因此也就没有覆盖 toString() 方法的机会。如果尝试直接打印数组的话...原创 2019-12-27 11:13:00 · 287 阅读 · 0 评论 -
拼接字符串的优雅方式
一般我们拼接字符串的时候会是以下的这种方式:String[] strs = {"a","b","c"};StringBuilder b = new StringBuilder();for (int i = 0; i < strs.length; i++) { b.append(strs[i]); b.append(", ");}b.delete(b.len...原创 2019-12-27 16:25:00 · 289 阅读 · 0 评论 -
如何比较 Java 的字符串
在逛 Stack Overflow 的时候,发现了一些访问量像喜马拉雅山一样高的问题,比如说这个:如何比较 Java 的字符串?访问量足足有 370万+,这不得了啊!说明有很多很多的程序员被这个问题困扰过。PS:之前写过一篇《Stack Overflow 上 250万 浏览量的一个问题:你对象丢了》,阅读量还不错,这给了我极大的信心继续把这个系列写下去。我们来回顾一下提问者的问题:...原创 2019-12-27 16:26:00 · 81 阅读 · 0 评论 -
装箱和拆箱
什么是装箱和拆箱转载:https://juejin.im/post/5d1610ae6fb9a07eba2c511d来看下装箱和拆箱的定义:装箱是指将基本类型转化成包装器类型,拆箱是指将包装器类型转化成基本数据类型。Java 有八种基本数据类型 byte/char/boolean/short/int/long/float/double 。在一切皆对象的 Java 世界里,...原创 2020-01-03 11:29:00 · 71 阅读 · 0 评论 -
[tomcat]-tomcat8启动时SessionIdGeneratorBase.createSecureRandom耗时
https://blog.csdn.net/xujiamin0022016/article/details/88142973tomcat8启动时SessionIdGeneratorBase.createSecureRandom耗时14-Jul-2016 04:14:22.900 INFO [localhost-startStop-1] org.apache.catalina.uti...原创 2020-01-10 16:23:00 · 195 阅读 · 0 评论 -
transient-java 关键字
一、概要介绍Java中的transient关键字,transient是短暂的意思。对于transient 修饰的成员变量,在类实例的序列化处理过程中会被忽略。 因此,transient变量不会贯穿对象的序列化和反序列化,生命周期仅存于调用者的内存中而不会写到磁盘里持久化。(1)序列化Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,...原创 2020-03-18 10:56:00 · 302 阅读 · 0 评论 -
jvm(转)
jvm(转)原:https://blog.csdn.net/luomingkui1109/article/details/728202321.JVM简析:作为一名Java使用者,掌握JVM的体系结构也是很有必要的。说起Java,我们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、J...原创 2018-05-22 12:42:00 · 95 阅读 · 0 评论 -
二叉树遍历
二叉树遍历前序遍历:A B D H P Q I E J Z Y K C F L M G N O 根左右中序遍历:P H Q D I B Z J Y E K A L F M C N G O 左根有后序遍历:P Q H I D Z Y J K E B L M F N O G C A 左右根public class Tree { privat...原创 2018-05-24 12:11:00 · 124 阅读 · 0 评论 -
js中onload和jQuery中的ready区别
js中onload和jQuery中的ready区别window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 ------>不能写多个(如果有多个,只会执行一个)$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。 ------->可以写多个 ---->同 $(function(){});...原创 2018-05-26 01:42:00 · 75 阅读 · 0 评论 -
css+js杂记
css+js杂记css的盒子模型分:ie盒子模型和标准盒子模型区别:2、选择器1.id选择器(# myid)2.类选择器(.myclassname)3.标签选择器(div, h1, p)4.相邻选择器(h1 + p)5.子选择器(ul > li)6.后代选择器(li a)7.通配符选择器( * )8.属性选择器(a[rel = "ext...原创 2018-05-28 18:08:00 · 95 阅读 · 0 评论 -
java反射
java反射反射:Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。用一句话总结就是反射可以实现在运行时可以知道任意一个类的属性和方法。获取Class对象的方式: 1、Object.getClas...原创 2018-06-19 15:06:00 · 57 阅读 · 0 评论 -
多线程相关-ThreadPoolExecutor
多线程相关-ThreadPoolExecutor应用层面: ThreadPoolExecutor: 创建多线程池执行器:new ThreadPoolExecutor(),创建方法最终都是走的以下这个构造方法: /** * Creates a new {@code ThreadPoolExecutor} with the given ini...原创 2018-06-26 20:31:00 · 75 阅读 · 0 评论 -
LinkedList阅读
LinkedList阅读package java.util;import java.util.function.Consumer;public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>...原创 2019-03-29 18:10:00 · 84 阅读 · 0 评论 -
ArrayList源码学习
ArrayList源码学习1、ArrayList:基于数据实现,允许出现空值和重复元素,当ArrayList中添加的元素数量大于底层数组容量是,会通过扩容机制重新生成一个更大的数组。(非线程安全)2、源码分析构造函数 /** * 初始化容量 */ private static final int DEFAULT_CAPACITY =...原创 2019-04-08 22:33:00 · 96 阅读 · 0 评论 -
bootstrap学习(一)栅格、布局
bootstrap学习(一)栅格、布局栅格:栅格将整个屏幕分为12份,当使用单一的一组.col-md-*栅格类,就可以创建一个基本的栅格系统,在手机和平板设备上一开始是堆叠在一起的(超小屏幕到小屏幕这一范围),在桌面(中等)屏幕设备上变为水平排列。所有“列(column)必须放在 ”.row内,所有的row必须在container内。clo-md-* :中等...原创 2019-04-14 19:42:00 · 336 阅读 · 0 评论 -
bootstrap学习(二)页面
bootstrap学习(二)页面响应式图片://当图片大的时候,逐渐缩小浏览器大小,图片会显示为自适应大小 ,img-responsive<div class="container"> <div class="row"> <img src="../static/1.jpg" class="img-responsive...原创 2019-04-15 22:43:00 · 121 阅读 · 0 评论 -
bootstrap学习(四)输入框、导航
bootstrap学习(四)输入框、导航输入框组:基本用法: //form-control 占满 //input-group:输入框组//input-group-addon:输入框前加入一个前缀 <div class="input-group"> <span class="input-group-addon">@...原创 2019-04-30 15:07:00 · 134 阅读 · 0 评论 -
bootstrap学习(三)表单
bootstrap学习(三)表单基本实例:from-group:可以是其内的标签排列更好from-control:使标签宽度为100%<form> <div class="form-group"> <label for="exampleInputEmail1">Email address</label>...原创 2019-05-04 18:22:00 · 386 阅读 · 0 评论 -
bootstrap学习(四)表格
bootstrap学习(四)表格基础样式:自适应沾满浏览器 <table class="table"> <tr> <th>序号</th> <th>姓名</th> </tr> <tr...原创 2019-05-04 18:23:00 · 135 阅读 · 0 评论 -
bootstrap学习(五)代码
bootstrap学习(五)代码内联代码:<code>public static</code>void main用户输入:to edit setting,press <kbd><kbd>ctrl</kbd>+<kbd>c</kbd></kbd>...原创 2019-05-04 18:23:00 · 89 阅读 · 0 评论 -
二分查找法
二分查找法package com.nxz.testboot.otherTest;/** * 二分查找 */public class BinarySearch { /** * @param arr 目标数组 * @param n 数组大小 * @param target 要查找的目标值 * @retur...原创 2019-05-04 18:25:00 · 78 阅读 · 0 评论 -
java反射-学习
使用Java反射机制可以在运行时期获取Java类的信息,可获取以下相关的内容:Class对象类名修饰符包信息父类实现的接口构造器方法变量注解简单的反射例子:1、获取class对象(前提): Class<Test> testClass = Test.class;或Class<?> aClass = Class.forName("com.alibab...原创 2019-06-12 14:53:00 · 64 阅读 · 0 评论 -
代理学习
代理学习1、静态代理测试类:package com.example.demo.proxy;public class StaticProxy implements UserDao { private UserDao userdao; public UserDao getUserdao() { return userdao; ...原创 2019-06-13 21:49:00 · 95 阅读 · 0 评论 -
基础-快速排序(基本)
简单的快排就是定义一个基准数和一左一右两个“哨兵”,右侧哨兵找比不大于基准数的值,左侧找不小于基准的数,找到后交换两个哨兵对应值的位置,然后继续向左,向右寻找符合条件的数,知道左、右哨兵相遇后,将基准值和左哨兵值交换即可,此时,交换后的基准值左侧都是小于它的值,右侧都是大于它的值,然后以此方式分别处理左侧数据和右侧数据package com.nxz.blog.otherTest...原创 2019-07-06 22:27:00 · 100 阅读 · 0 评论 -
基础-冒泡排序
有一数列 5,1,4,9,7,10, 按照从大到小排序冒泡排序:就是每次只比较相邻的两个数,如果后一个大于前一个的话,将两个数调换位置,依次类推,将第二个数和第三个数比较,再将第三个数和第四个数比较,当一趟比较完成之后,会确定一个数的位置(也就是说每一趟只能确定一个数的位置,因此n个数,就需要n-1趟的比较),冒泡排序的核心就是双层嵌套循环,时间复杂度O(N2) public ...原创 2019-07-06 22:27:00 · 86 阅读 · 0 评论 -
基础-栈队列简单测试
package com.nxz.blog.otherTest;import java.util.Queue;import java.util.Stack;import java.util.concurrent.LinkedBlockingQueue;public class Test02 { /** * 扑克游戏——“小猫钓鱼”。游戏的规则是这样的:将一副扑克...原创 2019-07-06 22:28:00 · 119 阅读 · 0 评论 -
基础-栈数据结构
栈:只能先进后出,被限定为只能在一端进行插入和删除操作,可以用来验证字符串是否是回文序列package com.nxz.blog.otherTest;import java.util.Stack;public class Test01 { public static void main(String[] args) { testStack("ahha啊k...原创 2019-07-06 22:28:00 · 103 阅读 · 0 评论 -
基础-简单的深度优先遍历
输出1,2,3,4,5,6,7 这几个数组成的全排列 ps:可以使用枚举(但是需要7层循环)使用递归(深度优先遍历的思路,DFS也可利用栈数据结构来实现,LIFO)package com.nxz.blog.otherTest;/** * 简单的深度优先遍历算法学习 */public class Test03 { /** * 输出1,2,3,4,5,...原创 2019-07-06 22:29:00 · 138 阅读 · 0 评论 -
基础-递归
递归原理递归是一种解决问题的有效方法,在递归过程中,函数将自身作为子例程调用你可能想知道如何实现调用自身的函数。诀窍在于,每当递归函数调用自身时,它都会将给定的问题拆解为子问题。递归调用继续进行,直到到子问题无需进一步递归就可以解决的地步。为了确保递归函数不会导致无限循环,它应具有以下属性:一个简单的基本案例(basic case)(或一些案例) ——能够不使用递归...原创 2019-07-28 00:45:00 · 95 阅读 · 0 评论 -
leetcode-136-只出现一次的数字
问题:package com.example.demo;import java.util.HashSet;import java.util.Iterator;import java.util.Map;import java.util.Set;public class Test136 { /** * 借助hash表 */ pub...原创 2019-08-02 23:23:00 · 72 阅读 · 0 评论 -
leetcode-66-加一
问题:package com.example.demo;public class Test66 { /** * 加一: * 从后向前遍历,分当前位置是否为9,9时,会进一 */ public int[] plusOne(int[] digits) { for (int i = digits.length - 1...原创 2019-08-02 23:24:00 · 78 阅读 · 0 评论 -
leetcode-49-字母异位词分组
问题:package com.example.demo;import java.util.*;public class Test49 { /** * 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 * 思路: * Map<String,List>作为缓存数据结构 * 遍...原创 2019-08-08 11:14:00 · 137 阅读 · 0 评论 -
java并发编程之美-阅读记录1
1.1什么是线程? 在理解线程之前先要明白什么是进程,因为线程是进程中的一个实体。(线程是不会独立存在的) 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程中的一个执行路径,一个进程中至少会有一个线程,进程中的多个线程共享进程的资源。 线程:是cpu分配的基本单位。 由上图可看出,一个进程中会有多个线程,多个线程共享堆和方法...原创 2019-08-08 23:29:00 · 202 阅读 · 3 评论 -
java并发编程之美-阅读记录2
2.1什么是多线程并发编程 并发:是指在同一时间段内,多个任务同时在执行,并且执行没有结束(同一时间段又包括多个单位时间,也就是说一个cpu执行多个任务) 并行:是指在单位时间内多个任务在同时执行(也就是多个cpu同时执行任务) 而在多线程编程实践中,线程的个数一般是多于cpu的个数的2.2为什么要多线程并发编程 多个cpu同时执行多个任务,减少了线程上下文切...原创 2019-08-09 22:11:00 · 346 阅读 · 2 评论 -
java并发编程之美-阅读记录3
java并发包中的ThreadLocalRandom类,jdk1.7增加的随机数生成器Random类的缺点:是多个线程使用同一个原子性的种子变量,导致对原子变量的更新产生竞争,降低了效率(该类是线程安全的,但是多线程环境下操作统一实例时,会有效率问题,jdk1.7之后可以使用ThreadLocalRandom类,1.7之前保证多个线程都有一个自己的Random实例即可) ...原创 2019-08-10 16:03:00 · 122 阅读 · 0 评论 -
java并发编程之美-阅读记录4
java并发包中的原子操作类,这些类都是基于非阻塞算法CAS实现的。4.1原子变量操作类 AtomicInteger/AtomicLong/AtomicBoolean等原子操作类 AtomicLong类:public class AtomicLong extends Number implements java.io.Serializable { // 基于硬件的...原创 2019-08-10 16:05:00 · 115 阅读 · 0 评论 -
java并发编程之美-阅读记录7
java并发包中的并发队列7.1ConcurrentLinkedQueue 线程安全的无界非阻塞队列(非阻塞队列使用CAS非阻塞算法实现),其底层数组使用单向列表实现,对于出队和入队操作使用CAS非阻塞来实现线程安全的。 1、结构: ConcurrentLinkedQueue内部的对列使用的是单向链表实现,并且有两个用volatile修改的节点头结点head和tai...原创 2019-08-12 21:40:00 · 105 阅读 · 0 评论 -
java并发编程之美-阅读记录5
java并发包中的并发List5.1CopeOnWriteArrayList 并发包中的并发List只有CopyOnWriteArrayList,该类是一个线程安全的arraylist,对其进行的修改操作都是在底层的一个复制数组上进行的,也就是使用了写时复制策略。 该类的结构:public class CopyOnWriteArrayList<E> i...原创 2019-08-10 20:29:00 · 108 阅读 · 0 评论 -
java并发编程之美-阅读记录6
java并发包中锁6.1LockSupport工具类 该类的主要作用就是挂起和唤醒线程,该工具类是创建锁和其他工具类的基础。LockSupport类与每个使用他的线程都关联一个许可证,在默认情况下调用LockSupport类的方法的线程是不持有许可证的。 1、void park() 如果调用park方法的线程已经那都了LockSupport关联的许可证的话,那LockS...原创 2019-08-11 18:08:00 · 132 阅读 · 0 评论 -
html-mailto
MailTo 属性mailto 属性可以设置到a 标签和form 标签中例如:<a href="mailto:****@qq.com">send mail</a>--或者<form action="mailto:*****@qq.com">....</form>mailto后跟的事收件人的信息| to | 收件人...原创 2019-10-26 20:40:00 · 454 阅读 · 0 评论