基础
beyond丿qq:1559810637
这个作者很懒,什么都没留下…
展开
-
理解JAVA关键字static和final
static拥有static的变量无论包括该变量的对象创建了多少个他们的static的变量永远是同一个,并且拥有static的变量可以不用new对象也能够调用,可以直接用类名点出来,如:package com.hw.temp;public class Temp {static int i=10;public static void main(String[] args) {Tes...原创 2018-08-05 23:25:41 · 147 阅读 · 0 评论 -
JAVA代码上优化性能的方法
1.return 一个空的集合,而不是 null如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素。这样你就不用去写一大堆 ”if else” 判断null元素 可以返回Collections.EMTY_LIST 或EMTY_SET EMTY_MAP 2.字符拼接的时候少用String 可以用StringBuilder或者StringBuffer,使用S...原创 2018-12-07 23:55:11 · 5875 阅读 · 0 评论 -
ArrayList的源码分析(一)
我想大家既然能看到这篇文章我就不用解释Arraylist是啥了,简单点说就是一个动态对象数组,然后就这个集合的源代码拿出来给大家分析一下我的个人看法和收获,实例代码是jdk1.8的源代码首先可以看到,Arraylist这个类继承了AbstractList这个类,实现了list这个接口等等然后我们来看看它的一些属性: 从这里可以看到arraylist的默认长度为10,也就是说明当你创...原创 2018-12-05 18:59:11 · 218 阅读 · 0 评论 -
ArrayList的源码分析(二)
上篇文章给大家介绍了arraylist集合源码的一些属性和扩容方式add方法,接下来再和大家来聊聊这个集合的一些源码首先看看remove的方法,这个方法有两个,一个是根据下标删除对象,一个是根据对象删除rangeCheck(index);是一个判断index参数的规范的,如果太长或者为负数则出现异常, modCount这个属性则是集合被修改的次数, 一个该集合的泛型变量接收到当前参数位...原创 2018-12-05 21:08:10 · 132 阅读 · 0 评论 -
HashMap源码分析(一)
之前有写到ArrayList的源码分析,欢迎大家点开我的头像查看对于HashMap这个类大家一定不陌生,想必多多少少用过或者了解过,今天我来和大家谈谈HashMap的源码,JDK为1.8继承AbstractMap类,实现map接口等等当你不设置它的容量时默认的容量大小 为16这个属性代表着它的最大容量,大小可以理解为2的30次方负载因子,如果构造方法没有指定负载因...原创 2018-12-06 00:15:45 · 120 阅读 · 0 评论 -
HashMap面试所需知识
实现通过put和get存储和获取对象,存储对象时,我们将K/V传给put方法时,它调用hashcode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量。获取对象时,我们将K传递给get,他调用hashcode计算hash从而得到bucket位置,并进一步调用equals()方法确认键值对。 HashMap的几个重要的信息:...转载 2018-12-06 00:20:31 · 93 阅读 · 0 评论 -
Java使用io流和多线程实现切割文件,合并文件
主体类package com.file;import com.sun.glass.ui.Size;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.Closeable;import java.io.File;import java.io.FileInpu...原创 2018-12-25 03:04:27 · 2120 阅读 · 8 评论 -
JAVA并发编程学习笔记
线程安全:就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。多个线程多个锁:多个线程,每个线程都可以拿到自己指定的锁,分别获得锁后执行synchronized方法体的内容关键字synchronized获取的锁都是对象锁,而不是将一段代码(方法)当做锁,所以示例中哪个线程...原创 2018-12-25 17:39:30 · 234 阅读 · 0 评论 -
两个线程同时对int a=0进行a++一百次最后的结果可能为多少?
关于这个问题csdn的博客上有很多博客都是说为200首先贴上代码public class Test { private static int i = 0; public static void main(String[] args) { Runnable runnable = () -> { for (int j = 0; ...原创 2019-02-16 10:51:17 · 3711 阅读 · 17 评论 -
String和StringBuffer/StringBuilder之间为什么我们拼接字符串的时候会使用后者?
首先咱们来看两个例子:第一种情况报错了,但是第二种没有,同样是定义为final的对象,而String不能改变,但是StringBuilder却可以通过append改变,关于这个final关键字实际上它所谓的不可改变只是说我这个变量名对应着这个变量不可改变,这个变量名不能去对应别的变量,但是实际上存在于堆空间的变量是可以改变的,但是为什么定义为final的String拼接就不可以了呢?...原创 2019-02-11 00:48:49 · 972 阅读 · 3 评论 -
java8中时间的各种转换(LocalDateTime)
1.将LocalDateTime转为自定义的时间格式的字符串public static String getDateTimeAsString(LocalDateTime localDateTime, String format) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); retur...原创 2019-03-22 14:54:04 · 5464 阅读 · 0 评论 -
JAVA中的JDK的动态代理
在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class)当我们通过代理对象调用一个方法的时候,这个方法的调用就会被转发为由InvocationHandler这个接口的 invoke 方法来进行调用。Object invoke(Object proxy, Method method, Object...原创 2018-12-07 22:50:44 · 75 阅读 · 0 评论 -
常用的一些正则表达式
常用正则表达式正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:\...转载 2018-10-18 11:52:31 · 91 阅读 · 0 评论 -
数据库 关于权限管理系统的三种设计方法
1.第一种通过帐号密码查询用户表,获得菜单的id取到菜单的id之后,加载对应的菜单和子菜单.弊端:只能一对一2.用过用户Id,获取到一个权限集合,对应多个数据,获取到权限id的集合,通过集合用In关键字得到多组父子关系的菜单. 弊端:当添加一个员工时,都需要添加多个权限相关数据,插入的数据过多,并且这些数据一般在运行内存中,耗资源3.通过用户id,得到用户类型,然后通过用户类型能知道员工...原创 2018-09-27 22:26:52 · 2142 阅读 · 0 评论 -
关于map集合的几种遍历方式
map集合的遍历1.通过Map.keySet遍历key和value:for (Integer in : map.keySet()) { //map.keySet()返回的是所有key的值 String str = map.get(in);//得到每个key多对用value的值 System.out.println(i...转载 2018-08-06 10:25:22 · 182 阅读 · 0 评论 -
移位操作符
<<左移将前半部分的数转成二进制后向左移动后半部分位数,例如 2<<2=8 也可以理解为:前数乘以2的后数次方。>>有符号右移与左移相反,乘以改成除以>>>无符号右移该操作符会将第一个操作数向右移动指定的位数。向右被移出的位被丢弃,左侧用0填充。因为符号位变成了 0,所以结果总是非负的。(译注:即便右移 0 个比特,结果也...转载 2018-08-06 10:28:11 · 659 阅读 · 0 评论 -
设计模式中的6大原则
1.单一职责原则即一个类只负责一项职责,不要存在多于一个导致类变更的原因 2.里氏替换原则子类可以扩展父类的功能,但是不能改变父类原有的功能 :子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法子类可以增加自己持有的方法当子类重载父类的方法时,方法的形参要比父类方法的输入参数更宽松当子类方法实现父类的抽象方法时,方法的返回值要比父类更严格父类 变量名=NE...原创 2018-08-13 00:00:21 · 113 阅读 · 0 评论 -
List=new Arraylist 和Arraylist =nwe Arraylist的区别
大家都知道,List是一个接口,而Arraylist是一个实现了List的一个类,为什么我们通常使用Arraylist的时候是拿List去new Arraylist呢?而不是直接用Arraylist去 new Arraylist呢。当我们用List=new Arraylist的时候,这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,这个对象能使用的方法就...原创 2018-08-19 11:57:30 · 433 阅读 · 1 评论 -
关于Arraylist的性能优化
大家一般用容器的时候Arraylist集合用的是最多的,那么当你的容器需要装下比较庞大的数据的时候你有没有想过为了系统性能着想对集合进行优化?下面用代码来演示:public static void main(String[] args) { List<Integer> list = new ArrayList<>(); long t...原创 2018-08-20 14:50:35 · 4201 阅读 · 0 评论 -
关于泛型
Java泛型:表现为在类名后面加上< >java中的泛型是什么?使用泛型的好处是什么?泛型是一种参数化类型的机制。它可以使得代码适用于各种类型,从而编写更加通用的代码,例如集合框架。泛型是一种编译时类型确认机制。它提供了编译期的类型安全,确保在泛型类型(通常为泛型集合)上只能使用正确类型的对象,避免了在运行时出现ClassCastException。 Java泛型是如何...原创 2018-08-29 11:53:25 · 315 阅读 · 0 评论 -
JAVA 关于JAVA集合在面试中可能遇见问题
集合:在遍历Arraylist集合的时候,想要对性能上优化的话尽量使用for循环,少用foreach。因为对于for循环JVM只是简单地增加了一个整型变量,它直接从内存读值。这使它非常快。但forEach迭代则不同,JVM必须把forEach转换为迭代器并为每个数据项调用hashNext(),这就是为什么for循环比foreach快的原因。而在LinkedList中,遍历还是用foreac...原创 2018-08-29 19:00:31 · 199 阅读 · 0 评论 -
Servlet的生命周期
Servlet是服务器端小程序,因此生命周期受web容器(也可看作是服务器)的控制。 Servlet的生命周期分:加载程序、初始化、服务、销毁、卸载5个部分。 a.加载Servlet (构造方法) Web容器负责加载Servlet,当WEB容器启动时或第一次使用SERVLET时,容器会负责创建Servlet实例(需配置web.xml指定servlet的位置),成功加载后...转载 2018-09-03 09:57:51 · 87 阅读 · 0 评论 -
Jquery的选择器
ready:$(document).ready(function(){ // 在这里写你的代码...一开始就执行的方法});可以简写为:$(function($) { // 你可以在这里继续使用$作为别名...}); $("#id"):相当于document.getElementById(),$("#p1").show();展现$("#p1").hi...原创 2018-09-17 16:57:44 · 234 阅读 · 0 评论 -
Hashmap集合的实现原理及一些面试问题
HashMap的实现原理?通过put和get存储和获取对象,存储对象时,我们将K/V传给put方法时,它调用hashcode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量。获取对象时,我们将K传递给get,他调用hashcode计算hash从而得到bucket位置,并进一步调用equals()方法确认键值对。 HashMap...原创 2018-09-14 16:05:27 · 159 阅读 · 0 评论 -
Spring Boot 之jar包改成war包模式
懒得copy了 直接放链接 :https://blog.csdn.net/qq_33689414/article/details/81812761需要注意的是 springboot2.0以后的版本不支持 tomcat8.0以前的版本转载 2019-08-16 16:43:17 · 363 阅读 · 0 评论