自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 简述Arrays.asList警示

asList方法顾名思义:转换为集合,接收的是Object变动参数——Arrays.asList(Object... a)示例:import java.util.Arrays;import java.util.List;public class Test47{ public static void main(String[] args) throws Exception { int[] data = {5, 4, 3, 2, 1}; ...

2021-03-19 11:54:15 215

原创 同父不同子类集合可判断该元素组是否相等

同父不同子类判断集合是否相等时只关注元素是否相等,无需考虑子类类型,即同调父类AbstractList里的equal方法 源码如下: public boolean equals(Object o) { if (o == this) return true; if (!(o instanceof List)) return false; ListIterator&l...

2021-03-19 10:22:58 133

原创 yield与join的区别

yield()让当前线程状态改为可运行状态,和其它线程一起竞争资源代码示例如下:public class Test68 extends Thread{ @Override public void run() { for (int i = 1; i <= 5; i++ ) { try { Thread.sleep(500); } ...

2021-03-19 10:02:46 2078

原创 HTTP请求/响应机制原理

1.1浏览器根据域名解析IP地址 浏览器根据访问的域名找到其IP地址。DNS查找过程如下: 1).浏览器缓存 :首先搜索浏览器自身的DNS缓存(缓存的时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否是有域名对应的条目,而且没有过期,如果有且没有过期则解析到此结束。 2).系统缓存:如果浏览器自身的缓存里面没有找到对应的条目,那么浏览器会搜索操作系统自身的DNS缓存,如果找到且没有过期则解析到此结束。 3).路由器缓存...

2021-03-19 09:52:45 1102

原创 Java的反射机制简介

Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。注:每个类被加载之后,系统都会为该类生成一个对应的Class对象,通过Class对象就可以访问到JVM中该类的信息,一旦类被加载到JVM中,同一个类将不会被再次载入。被载入JVM的类都有一个唯一标识就是该类的全名(包名和类名)。 获取Class类对应有 1、使用Class类的静态方法forName(Strin...

2021-03-19 09:27:04 109

原创 SQL之select语句的执行顺序

频繁插入或删除时推荐使用LinkedList而不是ArrayList现在来查看LinkedList和ArrayList的源码及操作(LinkedList和ArrayList的PK)插入元素时ArrayList(arraycopy方法)会拷贝遍历每个元素一遍,而LinkedList双链表仅引用地址进行修改 //ArrayList之add方法核心源码 public static <T,U> T[] copyOf(U[] original, int newLength, Cl...

2021-03-19 09:09:05 583

原创 线程主内存和工作内存交互

在java的内存模型中每一个线程运行时都有一个线程栈,线程栈保存了线程运行时候变量值信息。当线程访问摸一个对象时的值时,首先通过对象的引用找到对应在堆内存的变量的值,然后把堆内存变量的具体值load到线程本地内存中,并建立一个变量副本,之后线程就不再和对象在堆内存变量值有任何关系,而是直接修改副本变量的值,在修改完之后的某一个时刻(线程退出之前),自动把线程变量副本的值再回写到对象在堆中变量,在堆中的对象的值就产生了变化参照来源:《黑马程序员面试宝典(java).pdf》...

2021-03-18 17:52:53 174 1

原创 集合List、Map、Set简介

List的三个子类的特点ArrayList底层结构是数组,查询快,增删慢。LinkedList底层结构是链表型,增删快,查询慢。Vector底层结构是数组,线程安全,增删慢,查询慢。List、Map、Set的区别List和Set是存储单例数据的集合,Map是存储键和值这样的双列数据的集合;List中存储的数据是有顺序并允许重复的;Map中存储的数据是没有顺序且键值是不允许重复的;Set中的存储数据是没有顺序且不允许重复的,但元素在集合中的位置由元素的hashcode决定,位置是固定的(Set

2021-03-18 17:36:44 269 1

原创 java之静态加载和动态加载类(隐式和显式)

java语言是先把Java源文件编译成后缀为class的字节码文件,然后再通过ClassLoader机制把这些类文件加载到内存中,最后生成实例执行 静态加载:程序编译时就自动加载所有的类 对象的生成一般经过两个步骤: 1、加载到内存中生成Class的实例对象 2、通过new关键字生成对象 动态加载:程序运行时通过Class.forName方法进行动态加载,加载类的过程中会初始化该类的static变量和代码块等,非static类型对于forNam...

2021-03-18 17:25:18 781

原创 new和clone的区别

new操作符的本意是分配内存。程序执行到new操作符时,首先去看new操作符后面的类型,因为知道了 类型,才能给它分配多大的内存空间。分配完内存后就调用构造函数进行填充对象的各个域,这一步 叫对象的初始化,构造方法返回后,一个对象创建完毕,就可以把他的引用(地址)发布到外部,在 外部就可以使用这个引用操纵这个对象。 clone在第一步是和new相似的,都是分配内存,调用clone方法时,分配的内存和原对象(调用clone 方法...

2021-03-18 17:09:04 667 1

原创 Sharding-JDBC框架简介

一、什么是Sharding-JDBC Sharding-JDBC定位为轻量级JAVA框架,在JAVA的JDBC层提供的额外服务。它使用客户端直接连接数据库, 以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架 二、Sharding-JDBC能做什么 1、分库和分表 2、读写分离 3、分布式主键 4、分布式事务 三、适用项目框架 Sharding-JDBC适用于: 1...

2021-03-18 17:07:07 439

原创 多线程java.util.concurrent包简介

java.util.concurrent包描述(java1.5版本引入)在并发编程中很常用的实用工具类。此包包括了几个小的、已标准化的可扩展框架,以及一些提供有用功能的类。其中包括:1、执行程序(线程池);2、并发队列;3、同步器;4、并发Collocation 线程池的作用就是限制系统中执行线程的数量。 ThreadPoolExecutor线程池中的corePoolSize核心线程数,maximumPoolSize可拓展的最大线程数, keepAliveTime(超过corePo...

2021-03-18 17:00:18 322 1

原创 synchronized和Lock或volatile的区别

java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域, 这些区域都有各自的用途,创建和销毁时间 图: 程序计数器是一个较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行 号指示器,其中字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的 字节码指令(分支、循环、跳转、异常处理、线程恢复等基础功能),由于java虚拟机的多 线程是通过线程轮流切换并分配处理器执行时间的方法来实现的...

2021-03-18 16:55:14 655 1

原创 内存溢出解决思路

一般出现的情况有1、内存中加载的数据量过于庞大,如一次从数据库取出过多数据2、集合类中有对对象的引用,使用完成后未清空,使得JVM不能回收3、代码中存在死循环或循环产生过多重复的对象实体4、使用的第三方软件中的BUG5、启动参数内存值设定的过小一般解决的方案有第一步:修改JVM启动参数,直接增加内存(-Xms,-Xmx参数)第二步:检查错误日志,查看"OutOfMemory"错误前是否有其它异常或错误第三步:对代码进行走查和分析,找出可能发生内存溢出的地雷位置第四步:使用内存查看工具动态查

2021-03-18 16:19:17 171 1

原创 JVM垃圾回收机制常见算法

1、引用计数器算法(废弃)引用计数器算法是给每个对象设置一个计数器,当有地方引用时计数器+1,引用失效时计数器-1,计数器为0时就垃圾回收。特点:引用计数器实现简单,效率高,但不能解决循环引用问题--每个对象生成独立的计数器。2、根搜索算法(使用)根搜索算法是通过一些"GC Roots"对象作为起点,从这些节点开始往下搜索,搜索通过的路径成为有引用链,当一个对象没有被GC Roots的引用链链接的时候,说明这个对象就垃圾回收。GC Roots对象包括:a...

2021-03-18 16:16:26 189

原创 sql连接查询基本用法

首先先创建table1、table2两个表进行测试创建table1表以及其数据id name password11 11 aa2 22 bb3 55 ff 创建table2表以及其数据id name password21 33 cc2 44 dd使用内连接(inner join...on或join....

2019-04-08 09:09:02 259

原创 window版mysql备份数据

@echooff::title nametitle db_backup::color is greenCOLOR 2::defined valueset yy=%date:~0,4%set mm=%date:~5,2%set dd=%date:~8,2%if /i %time:~0,2% lss 10 set hh=0%time:~1,1%if /i %time:~0...

2019-04-08 09:07:29 386

原创 查找文本中出现频率最高的单词

前言:借助|管道来执行多条语句Find2More.sh脚本代码为:#!/bin/bashend=$1 #$1第一参数,出现频率最高的单词的前几项cat $2 | #$2第二参数,目标文件tr -cs "[a-z][A-Z]" "[\012*]" | #将文本文件该一行一个单词的形式呈现 tr A-Z a-z | #对单词中的大写转换为小写 sort | #对单词进行排...

2019-04-08 09:05:32 1165

原创 将文本文件转为html文件

前言:借助脚本把文本里的数据转为html数据,此时用到cat << CLOUD #Here-document用法如:info.txt文本数据为ZhangSan:Shang HaiLiSi:BeiJingWangWu:TianJinTxt2Html.sh脚本代码为:#!/bin/bashcat << CLOUD #Here-document用法,CLO...

2019-04-08 09:03:19 5567

原创 Linux常用命令

常用命令:[后续会加以补充] tar -zxvf 压缩包 --解压 mv 文件名 目标目录|文件 --在当前目录则重命名,移到其它目录则剪切 rm -rf 目录或文件 --删除不为空的目录或文件 jar -xvf fileName.war --解压war包 unzip xxxxxx.zip -d ...

2019-04-08 09:00:36 88

原创 在CentOS7下安装MySQL,仅需几个命令即可完成

前言:在CentOS中默认安装的是MariaDB,不过在系统中安装完MySQL后,它会自动覆盖掉MariaDB的MYSQL360百科,链接如下:https://baike.so.com/doc/2303745-2436931.html开始下载步骤,无需任何准备工作,简单明了#下载并安装yum repository[root@localhost ~]# wget -i -c h...

2019-04-08 08:59:17 138

原创 shell脚本基础语法

shell脚本语法学习: 1、变量命名规则: /** *变量名由数字、字母、下划线组成; *必须以字母或者下划线开头; *不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字) *如 param[合格] 12param[报错] */ 2、获取变量时最好用${变量名} /...

2019-04-08 08:56:48 208

原创 在win7下如何建立ftp服务(Windows自带或采用FileZilla Server软件)

前言:按照百度资源步骤进行操作,但发现还是访问不了ftp服务,简单的再自己摸索才发现是权限问题——还有其它步骤被忽视掉了,百度链接:https://jingyan.baidu.com/article/574c5219d466c36c8d9dc138.html1、描述:首先在本地机器上创建用户——用来访问并登录到FTP服务的 步骤:我的电脑右键 → 管理 → 本地用户和组 → 用...

2019-04-08 08:54:00 3138

原创 使用idea导入文件夹作为项目时,在项目中的文件夹可能会被隐藏

问题:使用idea导入文件夹作为项目时,有些项目目录下的文件夹或文件可能会被隐藏掉,如图1-1所示 1-1所造成的原因是项目没有被Idea完全初始化解决办法:method one:在开始打开idea时,删了该项目,重新导入,如图1-3(1-2图辅助1-3图——若已打开Idea直接出现项目时,可选择Close Project → 1-3图)所示1-21-3...

2019-04-08 08:49:51 10476 1

原创 如何从eclipse编程工具中的项目移植到idea编程工具

前言:基本操作跟eclipse编程工具差不多,但要想让javaweb项目跑起来所选择的类型不同而已准备工作:1、首先导入项目Debug——若使用idea导入文件夹作为项目时,在项目中的文件夹可能会被隐藏:请参照我前一篇博文https://my.oschina.net/u/3378039/blog/15936662、在Idea上配置tomcat准备运行选Edit Configur...

2019-04-08 08:48:48 462

原创 如何使用html表格自定义或第三方插件以excel格式导出

First method :user-defined<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www....

2019-04-02 18:01:11 690

原创 如何使用html自定义或第三方插件以word格式导出

First method :user-defined<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www....

2019-04-02 18:00:23 962

原创 如何使用jquery实现全屏问题

problem:因屏幕或文本域等太小,想扩大屏幕(全屏)solve://先封装好方法//进行切换var fullScreenClickCount=0; //调用各个浏览器提供的全屏方法var handleFullScreen = function () { var de = document.documentElement; if (de.requestFul...

2019-04-02 17:58:35 6865

原创 简述JVM解释器与编译器的区别

JAVA编译器(javac.exe)的作用是将java源程序编译成中间代码字节码文件,是最基本的开发工具JAVA解释器(java.exe)(英语:Interpreter),又译为直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行。解释器不会一次把整个程序转译出来,只像一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。它每转译一行程序叙述就立刻...

2019-04-02 17:56:49 3316 2

原创 数据区域之堆栈

java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域, 这些区域都有各自的用途,创建和销毁时间 图: 程序计数器是一个较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行 号指示器,其中字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的 字节码指令(分支、循环、跳转、异常处理、线程...

2019-04-02 17:55:24 175

原创 垃圾收集器

1、哪些内存需要回收? 2、什么时候回收? 3、如何回收? "自动回收" 当需要排查各种内存溢出、内存泄露问题时 当垃圾集成为系统达到更高并发量的瓶颈时 引用计数算法 假设方案一:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值 就加1;当引用失效时,计数器值就减1;任何时刻计数器都为0的对象就是不可能再...

2019-04-02 17:54:12 68

原创 Spring之Bean学习

简述:Spring框架主要是涉及到IOC(控制反转)和AOP(切面编程)两大重点IOC和DI(依赖注入)其实就是等同的意思,就是创建对象和维护对象,放在一个容器里,直接依赖注入即可使用AOP的存在目的是为了解耦即高内聚,低耦合Bean的取值范围 Singleton:一个Spring容器中只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例 Protot...

2019-04-02 17:52:22 238

原创 浅谈SpringMVC之DispatcherServlet

Spring的MVC框架是围绕一个DispatcherServlet其实就是个Servlet(它继承自HttpServlet基类)来设计的, 它支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染、文件上传等 控制器一般负责准备一个Map模型、填充数据、返回一个合适的视图名等,同时它也可以直接将数据 写到响应流中 Spring的web模块支持许多web相关的特...

2019-04-02 17:50:57 190

原创 spring之CacheManager简介

数据缓存Cache 为何要用缓存、缓存的目的是为了什么? 我们知道一个程序的瓶颈在于数据库,内存的速度远远大于硬盘的速度,当我们一次又一次 请求数据库或远程服务时会导致大量的时间耗费在数据库操作或远程方法调用上,以致于 程序性能恶化,使用数据缓存可以解决此问题 属性 ...

2019-04-02 17:48:34 3727

原创 spring之@Transactional简介

属性:propagation 含义:REQUIRED:方法A调用时没有事务新建一个事务,当在方法A调用另外一个方法B的 时候,方法B将使用相同的事务。如果方法B发生异常需要数据回滚的时候,整个事务数据 回滚。 REQUIRES_NEW:对于方法A和B,在方法调用的时候无论是否有事务都开启一个新的 的作用是将 事务。如果方法B有异常不会导致方法A...

2019-04-02 17:47:47 177

原创 使用Map进行的封装拼接sql语句

import java.util.*;public class SQLDemo { public static String sqlCommon=""; //模拟写sql语句 public static String querySQL(Map<String,Object> map,String tableName){ //map若有参数查询则...

2019-03-29 11:32:40 1527

原创 简述多种形式遍历(迭代)用法

import java.util.ArrayList;import java.util.List;public class MutilIterationDemo { public static List<String> list=null; public static void main(String[] args) { //添加数据 ...

2019-03-29 11:30:58 475

原创 如何解决项目中jsp访问路径的问题

jsp访问路径的解决方法可通过EL表达式、jsp中的java语言所提供的方法、DHTML.js所提供的方法等如源代码所示:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD ...

2019-03-29 11:29:09 2536

原创 java笔记分享

一、java能做什么除了硬件设备接口之外,所有PB/VB/C#/Delphi等高级语言能做的事情,Java都能做,而且因为JAVA具有丰富的开源项目,还具有广大高级语言所不能做的事情,主要包括如下几大应用: WEB应用开发类:包括门户、企业管理系统、行业应用等,JAVA是WEB应用开发首先。 TCP/IP通信类:如QQ,TCP/IP接口 用户界面类:Java具有强大的...

2019-03-29 11:25:12 191

原创 JUnit4单元测试的两种形式

特点: JUnit 是一个开放的资源框架,用于编写和运行测试。 提供注释来识别测试方法。 提供断言来测试预期结果。 提供测试运行来运行测试。 JUnit 测试允许你编写代码更快,并能提高质量。 JUnit 优雅简洁。没那么复杂,花费时间较少。 JUnit 测试可以自动运行并且检查自身结果并提供即时反馈。所以也没有必要人工梳理测试结果...

2019-03-29 11:22:05 574

java实现二维码(logo)生成

需要实现扫描访问网站链接或获取相关内容,使得用户快捷方便扫码使用

2018-10-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除