![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 90
weixin_39407066
这个作者很懒,什么都没留下…
展开
-
jdk8新特性
Lambda:Java中Lambda表达式的使用_程序员的博客-CSDN博客_java lambda表达式Date:jdk7的特点1、所有的日期类都是可变的,因此他们都不是线程安全的,这是Java日期类最大的问题之一。 2、Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外 用于格式化和解析的类在java.text包中定义。 3、java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入ja...原创 2021-12-15 19:32:26 · 340 阅读 · 0 评论 -
基于redis的分布式锁和redis的线程模型
目录介绍基于Redis的分布式锁redisson介绍为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。为什么要使用分布式锁?成员变量 A 存在 JVM1、JVM2、JVM3 三个 JVM 内存中 成员变量 A 同时都会在 JVM 分配一块内存,三个请求发过来同时对这个变量操作,显然结果是不对的 不是同时发过来,三个请求分别操作三个不同 JVM 内存区域的数据,变量 A 之间不.原创 2020-12-14 18:14:22 · 1688 阅读 · 0 评论 -
MyBatis中的#
MyBatis中的#1. #是预编译的方式,$是直接拼接;#不需要关注数据类型,mybatis实现自动数据类型转换;$不做数据类型转换,需要自行判断数据类型;#可以防止sql注入;$不能防止sql注入;如果只有一个参数,默认情况下,#{}中可以写任意的名字;${}中只能用value来接收。2. 有时候新增一条数据,知道新增成功即可,但是有时候,需要这条新增数据的主键,以便逻辑使用,再将其查询出来明显不符合要求,效率也变低了。这时候,通过一些设置,mybatis可以将insert的原创 2020-12-12 12:27:09 · 3000 阅读 · 0 评论 -
Jvm参数介绍及调优总结
首先介绍一下新生代、老年代。所谓的新生代和老年代是针对于分代收集算法来定义的,新生代又分为Eden和Survivor两个区。加上老年代就这三个区。数据会首先分配到Eden区 当中(当然也有特殊情况,如果是大对象那么会直接放入到老年代(大对象是指需要大量连续内存空间的java对象),当Eden没有足够空间的时候就会 触发jvm发起一次MinorGC。如果对象经过一次MinorGC还存活,并且又能被Survivor空间接受,那么将被移动到Survivor空 间当中。并将其年龄设为1,对象在Survivor每..原创 2020-12-05 18:50:50 · 482 阅读 · 0 评论 -
linux整理
linux基本介绍1.linux命令在线查询:http://man.linuxde.net/2.linux系统中断正在执行的程序,就要用Ctrl + c键组合而非[delete]键。3.unix提供了多个多个shell程序(bourne shell, C shell, Korn shell,Bash shell)管理员在为用户创建账号时,就规定了用户所使用的shell程序4.命令区分大小写,命令与参数之间要用空格符或者制表符分隔。把一组连续的空格符或者制表符称为空白字符串,系统规定命令中的各原创 2020-10-25 23:04:19 · 1995 阅读 · 0 评论 -
通用对象池GenericObjectPool
GenericObjectPool 是Apache Commons Pool提供的对象池,使用的时候需要调用 borrowObject 获取一个对象,使用完以后需要调用 returnObject 归还对象,或者调用 invalidateObject 将这个对象标记为不可再用。GenericObjectPool创建时,可以用有参构造函数进行初始化,通过GenericObjectPoolConfig 和PooledObjectFactory来进行参数的初始化和对象工厂类的引入。PooledObje...原创 2020-10-14 10:08:48 · 5202 阅读 · 1 评论 -
c3p0
C3P0是一个开源的JDBC连接池.它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名原创 2020-10-10 15:28:00 · 3539 阅读 · 0 评论 -
Base64编码原理
Base64的由来目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进行(或再次Base64)传输。那么,Base64到底起到什么作用呢?在参数传输的过程中经常遇到的一种情况:使用全英文的没问题,但一旦涉及到中文就会出现乱码情况。与此类似,网络上传输的字符并不全是可打印的字符,比如二进制文件、图片等。Base64的出现就是为了解决此问题,它是基于64个可打印的字符来表示二进制的数原创 2020-09-08 11:41:01 · 277 阅读 · 0 评论 -
JVM详解
JVM:从软件层面屏蔽了底层硬件、指令层面的细节,保证了跨平台。JRE:Java程序运行环境,JDK:Java程序的开发环境. JDK: JRE + 工具 。JRE: JVM + 类库(javaSE)。每个Java应用程序有一个Runtime类的实例,使运行程序与运行环境相连接,Runtime的exec(string)方法可以执行dos命令。通过Runtime的getRuntime返回实例。程序计数器:指向当前线程正在执行的字节码指令的地址(行号)。而线程只负责执行,不负责记忆。栈帧:栈原创 2020-12-10 18:42:37 · 466 阅读 · 0 评论 -
bitmap,bitSet和布隆过滤器讲解
在20亿个随机整数中找出某个数m是否存在其中,并假设32位操作系统,4G内存在Java中,int占4字节, 1字节=8位(1 byte = 8 bit)如果每个数字用int存储,那就是20亿个int,因而占用的空间约为 (2000000000*4/1024/1024/1024)=7.47G如果按位存储就不一样了,20亿个数就是20亿位,占用空间约为 (2000000000/8/1024/1024/1024)=0.233Gbitmap算法:所谓的Bit-map就是用一个bit位来标记...原创 2020-07-26 19:26:42 · 861 阅读 · 0 评论 -
Redis
@【TOC】目录# Redis简介REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统,是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。一款高性能的NOSQL系列的非关系型数据库。关系型有 mysql 和oracle等。关系型数据库与非关系型数据库对比:两者互补,通常情况下,使用关系型数据库,在合适的时候使用Nosql数据库,一般会将数据存储在关系型数据库,在Nosql数据库.原创 2020-07-19 22:44:14 · 574 阅读 · 0 评论 -
Netty总结
对于高性能的 RPC 框架,Netty 作为异步通信框架,几乎成为必备品。例如,Dubbo 框架中通信组件,还有 RocketMQ 中生产者和消费者的通信,都使用了 Netty。今天,我们来看看 Netty 的基本架构和原理。Netty 的特点与 NIONetty 是一个异步的、基于事件驱动的网络应用框架,它可以用来开发高性能服务端和客户端。其中,Selector 机制就是 NIO 的核心。当每次客户端请求时,会创建一个 Socket Channel,并将其注册到 Selector 上(多路复用器)原创 2020-07-18 22:46:24 · 353 阅读 · 0 评论 -
Gson解析介绍
JSON,Javascript Object Notation,是一种轻量级的数据交换格式,Gson 是google解析Json的一个开源框架,同类的框架fastJson,JackJson等等。POJO,Plain Old Java Object,是一种简单的Java对象,一般就是有一些private属性及其属性getter、setter方法的类。这种对象只能用来装载数据,作为数据存储的载体,而不具有业务逻辑处理的能力。Gson的创建方式1..Gson gson = new gson();原创 2020-06-14 13:03:26 · 2350 阅读 · 0 评论 -
apache-tomcat-7.0.81/conf/server.xml详解
https://blog.csdn.net/u_ascend/article/details/80433978Tomcat隶属于Apache基金会,是开源的轻量级Web应用服务器,使用非常广泛。server.xml是Tomcat中最重要的配置文件,server.xml的每一个元素都对应了Tomcat中的一个组件;通过对xml文件中元素的配置,可以实现对Tomcat中各个组件的控制.说明:由于server.xml文件中元素与Tomcat中组件的对应关系,后文中为了描述方便,“元素”和“组件”的使用不...原创 2020-06-12 12:46:13 · 598 阅读 · 0 评论 -
java中Annotation详解
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。主要作用:Annotation其实是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用Annotation,程序开发人员可以在不改变原有逻辑的情况下,在源文件嵌入一些补充信息。如代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证或者进行部署。Java ...原创 2020-04-09 15:49:05 · 1867 阅读 · 1 评论 -
java之AIO实例
AIO介绍JDK1.7升级了NIO类库,升级后的NIO类库被称为NIO 2.0,Java正式提供了异步文件I/O操作,同时提供了与UNIX网络编程事件驱动I/O对应的AIO。AIO是真正的异步非阻塞I/O。它不需要通过多路复用器(Selector)对注册的通道进行轮询操作即可实现异步读写,从而简化了NIO的编程模型。NIO 2.0引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的...原创 2020-03-31 14:58:13 · 1564 阅读 · 2 评论 -
JavaNIO详解
NIO在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,而在Java 1.4中推出了NIO,NIO 与原来的IO 有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写。阻塞IO模型在老的IO包中,serverSocket和socket都是阻塞式的,因此一旦有大规模的并发行为,而每一个访问都会开启一个...原创 2020-03-27 10:51:44 · 434 阅读 · 0 评论 -
九种算法整理
稳定性:如果相同元素排序前后的顺序不变,说明该算法是稳定的.时间开销:数据比较次数与数据移动次数来衡量.空间开销:执行算法顺序时的附加存储开销.忽略常数,用O(1)表示1.选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的...原创 2020-03-14 18:15:55 · 454 阅读 · 0 评论 -
java树的整理
用树的原因:因为它通常结合了另外两种数据结构的有点:一种是数组,一种是链表,在树中查找数据项的速度和在有序数组中查找一样快,并且插入数据项和删除数据项的速度和链表一样。路径:设想一下顺着链接点的边从一个节点走到另一个节点,所经过的节点顺序排列就称为“路径”。根:树顶端的节点就称为根,一棵树只能有一个根,从根到任意节点有且只有一条路径。父节点:每个节点上面的节点为此节点的父节点,...原创 2020-03-12 18:13:26 · 853 阅读 · 0 评论 -
java并发编程及juc包的应用
多线程: 进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位。windows操作系统是多任务操作系统,它以进程为单位,一个进程是一个包含有自身地址的程序,每个正在独立执行的程序都称为进程,每个进程有自己的内存空间和系统资源。系统可以分配给每个进程一段有限的使用CPU时间,CPU在这个时间片中执行某个进程,然后下一个时间片又跳到另一个进程中去执行,由于CPU转换较快...原创 2020-01-19 18:24:09 · 817 阅读 · 0 评论 -
Bat文件中javac和java中的ClassPath
在dos下编译java程序,就要用到classpath这个概念,尤其是在没有设置环境变量的时候。classpath就是存放.class等编译后文件的路径。javac:如果当前你要编译的java文件中引用了其它的类(比如说:继承),但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面加上-classpath参数,通过使用以下三种类型的方法 来指导编译器在编译的时候去指...转载 2018-11-28 14:22:36 · 731 阅读 · 0 评论 -
java第二篇Java基础
Java分为三个版本:Java SE(标准版)、Java EE(企业版)、Java ME(微型版)。其中JavaSE就是大家学JavaEE和JavaME的基础,换而言之学Java先从JavaSE开始,JavaSE 包含了支持 Java Web 服务开发的类,JavaEE是企业最常用的用于企业级开发应用的,Java ME主要是移动段的开发应用。eclipse安装教程 : https://blog...原创 2018-06-28 20:59:59 · 363 阅读 · 0 评论 -
ExecutorService学习
转载:https://blog.csdn.net/fwt336/article/details/81530581在我们的日常开发中,难免会使用到线程,部分还会用到多线程并发问题。我们知道,线程的创建和释放,需要占用不小的内存和资源。如果每次需要使用线程时,都new 一个Thread的话,难免会造成资源的浪费,而且可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪。不利于扩展,比如...原创 2019-03-28 16:24:08 · 521 阅读 · 0 评论 -
Java第六章 String类
1.它不是java的基本类型之一。但可以像基本数据类型一样使用。2. string s = new string() 表示一个空字符串 并且可以在new的时候直接赋值,而String a = "hello"也是可以的 。 用 + 号链接字符串,和其他类型链接返回字符串。C#里不包含string无参的构造函数。indexof 返回字符在字符串里的位置 没有返回-1.其实就是字符的数组,Strin...原创 2018-07-01 18:35:23 · 197 阅读 · 0 评论 -
Java第七章 类和对象
可将将类看做是对象的载体1.对象:静态部分,动态部分,静态的为属性,动态的为行为。面向对象的三大特点:1.封装:封装变化,让封装的类或组件,尽量只负责一个领域的工作.。2.继承:主要利用对象的共性解决同样的问题,概念形成统一,通过继承可以管理多个概念。3.多态:同一个行为的不同表现方法 ,解决父类的方法在子类不适合的问题。主要思想:分而治之,高内聚,低耦合,封装变化。...原创 2018-07-03 00:11:31 · 533 阅读 · 0 评论 -
Swing程序设计
Swing是 GUI(图形用户界面)开发工具包,在AWT(CLI)(抽象窗口工具包)的基础上使开发开发跨平台的java应用程序界面成为可能,早期的AWT依赖于本地系统,Swing开发的不受平台限制,也就是说,用swing开发的java应用程序移植到其他系统平台时其外观界面不会改变,这是因为Swing组件内部提供了相应的用户界面,而这些用户界面是纯java语言编写的,而不依赖与本地平台,所以swin...原创 2018-07-17 16:45:10 · 2108 阅读 · 0 评论 -
Java第九篇反射和异常处理
上一篇已经介绍了C#类和java类的区别,由于工作原因经过三天的间断整理才合完,以备后面复习时对比。这里把发射单独做一篇讲解。首先;当程序要使用某个类时,如果该类还未被加载到内存,则系统通过加载(通过类加载器完成),连接,初始化实现对这个类的加载。加载:就是指将class文件读入内存,并为之创建一个Class对象,任何类被使用时都会建立一个Class对象。连接:验证:是否有正确的内部结构,并和...原创 2018-07-05 00:29:17 · 2021 阅读 · 0 评论 -
java网络通信
java已经将网络程序所需要的东西封装成不同的类,只要创建这些类的对象,使用相应的方法,就可以实现网络通信。服务器-----------网络-----------客户机。服务器是指提供信息的计算机或程序,客户机是指请求信息的计算机或程序,通常所说的“局域网”(local Area Network)LAN ,是一群通过一定形式连接起来的计算机,LAN延伸到更大的范围,这样的网络称为“广局网”(w...原创 2018-08-03 16:58:12 · 10544 阅读 · 2 评论 -
Java第12篇输入输出I/O和ASCII码
先说一下路径中的“/”和“\”:一般可以认为是”/”的作用等同于”\”,在java中路径一般用”/”,windows中的路径一般用”\”.linux、unix中的路径一般用”/” .所以在java中写windows路径一般用”/”,或用“\”将”\”转义一下,就成了”\”。1.java中浏览器地址栏网址使用 斜杆/ ;2.windows文件浏览使用 反斜杠\ ;3.出现在html ur...原创 2018-07-10 14:49:21 · 2728 阅读 · 0 评论 -
JDBC操作数据库
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL(SQL 是用于访问和处理数据库的标准的计算机语言。)语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC是连接数据库和java程序的桥梁,通过...原创 2018-08-05 17:14:48 · 251 阅读 · 0 评论 -
C#的委托和java里的委托
C#:委托是方法的代理,委托的是方法,当调用委托时就调用了它的方法,是一类行为的抽象,是一种自定义数据类型。它有统一的返回类型和参数。1.定义委托:访问级别delegate 返回值 委托的名称(参数组成)delegate void Handler(); 2.创建委托:Handler handler = new Handler(Fun);Fun是当前类中的方法名称。3.调用委托, handle...原创 2018-11-01 18:23:45 · 3321 阅读 · 0 评论 -
运行java可执行jar包
导出与导入:如果要用别的项目的类, 把对方类export出成jar包(多个类的集合),然后复制到自己项目路径下然后添加至构建路径,jar包右键buildpath/addtobuildpath。export导出javadoc文档,index文件用浏览器打开。1.控制台的可通过cmd命令:java -jar 包名.jar(需要进入到当前的jar包目录)2.建bat文件写进代码java -jar...原创 2018-11-01 19:11:52 · 186400 阅读 · 3 评论 -
ConcurrentHashMap,CopyOnWriteArraySet「E」,BlockingQueue
1.ConcurrentHashMap:大家都知道HashMap是非线程安全的,Hashtable是线程安全的,但是由于Hashtable是采用synchronized进行同步,相当于所有线程进行读写时都去竞争一把锁,导致效率非常低下。而ConcurrentHashMap避免了为整个容器上锁。JDK1.8以前他把整个容器分成了若干个段(Segment),而这些段数组的容量是固定的。每个段又相当于一...原创 2019-03-20 20:01:09 · 931 阅读 · 0 评论 -
ReentrantLock问题记录
说ReentrantLock前我们先了解一下Lock与AbstractQueuedSynchronizer(AQS),Doug Lea大师为我们提供了大量实用,高性能的工具类,这些代码在java.util.concurrent包下。包的结构大概是:lock简介我们下来看concurent包下的lock子包。锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享...原创 2019-03-21 18:23:17 · 1025 阅读 · 0 评论 -
jxl和poi读取xls和xlsx
一、jxl优点:Jxl对中文支持非常好,操作简单,方法看名知意。Jxl是纯javaAPI,在跨平台上表现的非常完美,代码可以再windows或者Linux上运行而无需重新编写支持Excel 95-2000的所有版本,生成Excel 2000标准格式支持字体、数字、日期操作能够修饰单元格属性支持图像和图表,但是这套API对图形和图表的支持很有限,而且仅仅识别PNG格式,只能对excel处理。...原创 2019-03-17 21:30:59 · 3311 阅读 · 0 评论 -
Java中Lambda表达式的使用
此笔记仅用作复习使用:https://www.cnblogs.com/franson-2016/p/5593080.htmlLambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式还增强了集合库。...原创 2019-03-26 17:39:22 · 65220 阅读 · 15 评论 -
java流程控制,数组,集合
1.复合语句:由{开始,由}结束。在作用域外调用复合语句内的变量会报错。2.if语句、switch语句:break 停止, 没有情况执行default。while(进入条件)循环{} 、do.. while(进入条件) 循环(至少执行一次循环体)、for循环、foreach循环. 跳转语句 break(跳出当前循环)、 continue(跳过当前循环执行下一次循环)、return (跳出方法)...原创 2018-06-29 21:21:22 · 371 阅读 · 0 评论