- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 01-单例模式的8种写法及其优缺点
介绍了单例模式的8种写法及其优缺点,兼具按需加载和线程安全两个优点的单例模式是:双重检查加锁,静态内部类和枚举类三种。
2022-08-25 19:37:31
187
原创 史上最全HashMap源码整理
文章目录1. HashMap的继承关系1.1 AbstractMap2. HashMap的变量2.1 为什么建议HashMap初始化时设置初始容量?2.2 为什么初始容量是16(2的幂次)?2.3 为什么加载因子是0.75f?3. HashMap的数据结构3.1 一些基本概念1. hash2. 碰撞3.2 数据结构4. HashMap的方法4.1 put()方法4.1.1 hash() 方法4.1.2 putVal() 方法4.1.3 resize() 方法4.2 get()方法5. HashMap的
2020-05-13 16:22:03
1909
2
转载 设计模式总述
疫情期间重新温习了一遍设计模式,期间查阅了很多博客学习了其他老师对于设计模式的见解。然后整理成笔记分享给大家,同时也非常欢迎大家指出笔记中有所欠缺的地方,希望本系列笔记能够对大家的工作和学习有所帮助。1. 什么是设计模式模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案2. 软件设计的几大原则单一职责原则:一个类只负责一个功能领域中的相应职责开闭原则:软件实...
2020-05-06 10:14:12
141
转载 Java的序列化和反序列化
文章目录1. 概念对象的序列化主要有两种用途2. JDK类库中的序列化API3. serialVersionUID的作用生成方式作用取值1. 概念序列化:把对象转换为字节序列的过程称为对象的序列化。反序列化:把字节序列恢复为对象的过程称为对象的反序列化。对象的序列化主要有两种用途把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;在网络上传送对象的字节序列。在很多应...
2020-04-29 16:48:07
178
原创 web服务器及Tomcat安装
web开发入门通俗来讲,web应用程序就是通过浏览器访问的程序,包含一系列的静态或动态资源。静态资源指.html.css.js等,供人浏览的资源是不变的,不连数据库,无法与用户交互。动态资源指展示内容因时间因人不同而改变,使用servlet/jsp,PHP,微软系列的.net等。web服务器Web服务器是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序,...
2020-04-29 14:55:17
249
原创 同步异步和阻塞非阻塞的区别
同步和异步着重点在于多个任务的执行过程中,一个任务的执行是否会导致整个流程的暂时等待;而阻塞和非阻塞着重点在于发出一个请求操作时,如果进行操作的条件不满足是否会返会一个标志信息告知条件不满足。...
2020-04-29 09:59:42
141
转载 JVM结构,GC工作机制详解
转自:原文地址1. jvm结构根据《java虚拟机规范》规定,JVM的基本结构一般如下图所示:从左图可知,JVM主要包括四个部分:1.类加载器(ClassLoader):在JVM启动时或者在类运行时将需要的class加载到JVM中。(右图表示了从java源文件到JVM的整个过程,可配合理解。 关于类的加载机制,可以参考http://blog.csdn.net/tonytfjing/art...
2020-04-28 11:06:28
421
原创 java 内存中的堆和栈
简单来说,Java把内存分为两种:堆内存,栈内存。栈内存函数(方法)中定义的基本类型的变量和引用变量都在函数的栈内存分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。栈内存中的数据可以共享。比如:int a = 3;int b = 3;编译器先处理...
2020-04-20 17:03:25
147
转载 JVM 发生OOM的四种情况
1、Java堆溢出:heapJava堆内存主要用来存放运行过程中所以的对象,该区域OOM异常一般会有如下错误信息;java.lang.OutofMemoryError:Java heap space此类错误一般通过Eclipse Memory Analyzer分析OOM时dump的内存快照就能分析出来,到底是由于程序原因导致的内存泄露,还是由于没有估计好JVM内存的大小而导致的内存溢出。另...
2020-04-20 16:26:03
332
原创 String 对象及常量池
首先String不属于8种基本数据类型,是一个对象,默认值为null,new String()和new String("")都是声明一个空字符串,而不是null。面试时经常被问到:String s = “hello”;和String s = new String(“hello”);的区别。这里我们先说说常量池。常量池是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包...
2020-01-13 10:14:08
285
原创 重载,继承,重写和多态的区别
继承是子类获得父类的成员。多态则是为了避免在父类里大量重载引起代码臃肿且难于维护(多态则是父类使用子类的方法)。重写是继承后重新实现父类的方法。重载是在一个类里一系列参数不同名字相同的方法。...
2020-01-13 09:33:25
329
转载 java内部类详解
转自:java内部类详解1. 内部类基础在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。1.1 成员内部类成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式:class Circle { double...
2020-01-10 17:29:27
135
转载 内存中Java各类型数据的存储方式
1. 局部变量和方法参数局部变量和方法参数都是存储在栈上开辟空间来储存的,随着进入方法开辟,退出方法回收。以32位JVM为例,boolean/byte/short/char/int/float以及引用都是分配4字节空间,long/double分配8字节空间。对于每个方法来说,最多占用多少空间是一定的,这在编译时就可以计算好。我们都知道JVM内存模型中有,stack和heap的存在,但是更...
2020-01-09 15:47:27
242
转载 Java的参数传递机制
Java中的参数传递机制一直以来大家都争论不休,究竟是“传值”还是“传址(传引用)”,争论的双方各执一词,互不相让。不但“菜鸟”们一头雾水,一些“老鸟”也只知道结果却说不出所以然来。我相信看过下面的内容后,你就会明白一些。1. 基本类型作为参数传递 public static void main(String[] args) { int n = 3; System.out.printl...
2020-01-09 15:34:14
320
原创 Java关键字-final
基本用法1. 修饰类final修饰类时,表明这个类不能被继承。比如Java中的String类。注意:final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。2. 修饰方法被final修饰的方法不能被继承类修改。// 父类public class Bird { public final void fly() {...
2020-01-09 15:00:46
101
转载 一个TCP连接可以发送多少个HTTP请求
转自: https://zhuanlan.zhihu.com/p/61423830一道经典的面试题是从 URL 在浏览器被被输入到页面展现的过程中发生了什么,大多数回答都是说请求响应之后 DOM 怎么被构建,被绘制出来。但是你有没有想过,收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?要搞懂这个问题,我们需要先解决下面五个问...
2020-01-08 14:12:58
211
原创 Java关键字-static
在对象没有被创建的时候(只要类被加载了),就可以通过类型去调用方法/变量,也就是说,static修饰的方法/变量,不需要依赖对象来访问。静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在。程序中只需要进行一次初始化操作的代码放到static修饰的代码块,以便提高程序性能。static修饰的方法不能调用非静态的方法,因为非静态的方法依赖于对象的创建。static代码块在一个类中可以出现多个,在类被加载的时候按顺序执行一次。,存在多个副本,各个对象拥有的副本互不影响。.
2020-01-06 13:48:44
141
原创 分布式,集群,微服务的概念和区别
集群概念:同一个业务,部署在多个服务器上,即多个人做同一件事。优点:一台服务器当掉,其他服务器可以顶上来。需要做负载均衡。特点:通过增加服务器实现,通过提高单位时间内执行的任务数来提升效率。分布式概念:一个业务拆分成多个子业务,部署在多个服务器上,即多个人在一起做不同的事,多个系统协同合作完成一个特定任务。特点:以缩短任务的执行时间来提升效率。比如一个10小时完成的业务,拆分成1...
2020-01-03 15:30:28
175
原创 layer.open打开子页面后操作
父页面中调用子页面的方法var iframeWin = window[layero.find('iframe')[0]['name']];iframeWin.savePickupOrderBook();//savePickupOrderBook()是子页面中的方法子页面中调用父页面的方法window.parent.initHandbookList();//initHandbook...
2019-11-19 10:29:35
1429
原创 Oracle创建外键约束
1. 创建表时创建外键CREATE TABLE T1 (employee_id NUMBER(4), last_name VARCHAR2(10), job_id VARCHAR2(9), salary NUMBER(7,2), department_id CONSTRAINT fk_dep...
2019-10-23 14:11:08
2000
原创 项目中遇到Oracle语句报错问题记录
1. FROM keyword not found where expected原因:sql语句错误,少写了一个,2.column ambiguously defined:未明确定义列原因:两个字段的别名重复了。3.ORA-00907: missing right parenthesis 右括号缺失原因:to_date(’’,’’)函数中两个参数见的逗号没写...
2019-07-01 18:03:21
218
原创 bootstrap Table使用总结及遇到的问题
现在做的化销项目前端使用bootstrap框架,copy之前的页面也没啥大问题,然后业务提了一些优化的东西,结果一地鸡毛,做个记录,以便以后查询。bootstrap Table调用getSelections时获取行索引前提:列表是一个可编辑的表格,但没用bootstrap Table的可编辑配置,是通过自己写input实现的。需求:新增行时,希望复制选中行的数据问题:$('#id').b...
2019-07-01 17:53:24
1047
原创 记录oracle使用中遇到的问题
之前开发时一直使用MySQL,现在项目中使用的数据库是Oracle,虽然大部分语句都一样,但也有一些差别比较大,因此记录一下,方便查询。代码都是整合mybatis后xml中的SQL。1. 查询结果排序使用nlssort(字段名,'NLS_SORT=SCHINESE_PINYIN_M')。例子:order by nlssort(orgName,‘NLS_SORT=SCHINESE_PINYIN...
2019-04-23 11:30:17
191
原创 spring 遇到的问题解决
1. 参数接收问题具体参考:https://www.cnblogs.com/zeng1994/p/9110632.html问题描述:http请求参数缺少@RequestParam时,参数接收失败问题;问题定位:定位到报错的方法编译后的.class文件,参数被编译成arg0,所以需要用注解指定形参的名字。解决方法:手动添加@RequestParamjavac编译时加个-g的参数或者去...
2019-04-03 15:20:02
325
原创 java实现汉字转拼音
有现成的jar包<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> ...
2019-04-03 15:11:06
204
转载 springboot整合Redis
spring boot整合Redis转载:http://www.cnblogs.com/zeng1994/1. 前置条件1.1 导入jar<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-r...
2019-04-03 15:09:00
120
原创 详解spring事务
spring事务总述事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。比如:取钱。事务的四个特性:ACID原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。一致性(Consistency):一旦事务完成(不管成功...
2019-04-03 10:16:54
139
转载 网络营销常见术语
网络营销常见术语:CPC (Cost Per Click): 按点击计费CPA (Cost Per Action): 按成果数计费CPM (Cost Per Mille): 按千次展现计费CVR (Click Value Rate): 转化率,衡量CPA广告效果的指标CTR (Click Through Rate): 点击率PV (Page View): 流量ADPV (Adver...
2019-04-03 10:15:12
1904
转载 java类加载器ClassLoader深入解析
参考资料:https://www.cnblogs.com/baizhanshi/p/6051218.htmlhttps://blog.csdn.net/tonytfjing/article/details/47212291ClassLoader,即java类加载器,主要作用是将class加载到JVM内,同时它还要考虑class由谁来加载。1. 了解类加载机制的好处为什么要了解类加载机...
2019-04-03 10:11:47
271
原创 jasypt整合springboot给数据库加密
导入包<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.14</version> <...
2019-03-20 10:44:16
586
原创 maven使用中的问题
本地仓库中有jar包,但项目的pom文件中依然报missing错误。解决方法:删除出错jar包所在目录的_remote.repositories,_maven.repositories文件,重新update project…网上提供的方法:maven中的本地仓库的index索引没有更新导致,在eclipse中打开菜单 window-&gt; show view –&gt; other –&...
2019-02-23 14:05:45
262
原创 POI 设置Excel样式
/*Copyright 2002-2019 Petro-CyberWorks Information Technology Co. Ltd. All rights reserved.PCITC PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*/package com.pcitc.scl.business.produ...
2019-02-22 11:27:19
2220
原创 windows环境下bat文件
@echo offecho ---------------------------------------------------------------------echo 设置一体化现代物流项目执行环境,请选择:echo 1、测试环境echo 2、生产环境echo x、退出echo --------------------------------------...
2019-02-21 17:26:03
222
原创 跨域问题产生原因及解决办法
同源策略在客户端编程语言中,如JavaScript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义。同源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那么什么叫相同域,什么叫不同的域呢?当两个域具有相同的协议(如http), 相同的端口(如80),相同的host(如www.example.org),那么...
2019-01-18 17:52:11
261
转载 java自带工具生成证书
转自:https://www.cnblogs.com/zhaoyan001/p/6076510.html一、keytool的概念 keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%\bin\ke...
2019-01-18 15:39:45
506
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人