学习
文章平均质量分 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 · 365 阅读 · 0 评论 -
jvm命令使用
CMS:首先介绍一下新生代、老年代。所谓的新生代和老年代是针对于分代收集算法来定义的,新生代又分为Eden和Survivor两个区。加上老年代就这三个区。数据会首先分配到Eden区 当中(当然也有特殊情况,如果是大对象那么会直接放入到老年代(大对象是指需要大量连续内存空间的java对象),当Eden没有足够空间的时候就会 触发jvm发起一次Minor GC。如果对象经过一次Minor GC还存活,并且又能被Survivor空间接受,那么将被移动到Survivor空 间当中。并将其年龄设为1,对象在S...原创 2021-08-25 17:26:05 · 362 阅读 · 0 评论 -
基于redis的分布式锁和redis的线程模型
目录介绍基于Redis的分布式锁redisson介绍为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。为什么要使用分布式锁?成员变量 A 存在 JVM1、JVM2、JVM3 三个 JVM 内存中 成员变量 A 同时都会在 JVM 分配一块内存,三个请求发过来同时对这个变量操作,显然结果是不对的 不是同时发过来,三个请求分别操作三个不同 JVM 内存区域的数据,变量 A 之间不.原创 2020-12-14 18:14:22 · 1755 阅读 · 0 评论 -
mysql问题记录
写入导出文件报错错误提示:The MySQL server is running with the --secure-file-priv option so it cannot execute出现这个问题的原因是因为启动MySQL的时候使用了--secure-file-priv这个参数,这个参数的主要目的就是限制LOAD DATA INFILE或者SELECT INTO OUTFILE之类文件的目录位置,我们可以使用 SELECT @@global.secure_file_priv; 查询到你当..原创 2020-12-12 16:44:24 · 261 阅读 · 0 评论 -
MyBatis中的#
MyBatis中的#1. #是预编译的方式,$是直接拼接;#不需要关注数据类型,mybatis实现自动数据类型转换;$不做数据类型转换,需要自行判断数据类型;#可以防止sql注入;$不能防止sql注入;如果只有一个参数,默认情况下,#{}中可以写任意的名字;${}中只能用value来接收。2. 有时候新增一条数据,知道新增成功即可,但是有时候,需要这条新增数据的主键,以便逻辑使用,再将其查询出来明显不符合要求,效率也变低了。这时候,通过一些设置,mybatis可以将insert的原创 2020-12-12 12:27:09 · 3023 阅读 · 0 评论 -
通用对象池GenericObjectPool
GenericObjectPool 是Apache Commons Pool提供的对象池,使用的时候需要调用 borrowObject 获取一个对象,使用完以后需要调用 returnObject 归还对象,或者调用 invalidateObject 将这个对象标记为不可再用。GenericObjectPool创建时,可以用有参构造函数进行初始化,通过GenericObjectPoolConfig 和PooledObjectFactory来进行参数的初始化和对象工厂类的引入。PooledObje...原创 2020-10-14 10:08:48 · 5420 阅读 · 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 · 3557 阅读 · 0 评论 -
Signal机制
java中提供了signal的机制。在sun.misc包下,属于非标准包。重要涉及到两个类:Signal和SignalHandler。其中Signal主要使用了静态方法Signal.handle(Signal, SignalHandler),而SignalHandler是一个接口,有一个抽象方法void handle(Signal var1);需要我们自己实现SignalHandler接口处理。在Linux下支持的信号(具体信号kill -l命令查看):SEGV, ILL, FPE, BUS, SYS原创 2020-09-08 22:32:36 · 2837 阅读 · 0 评论 -
Base64编码原理
Base64的由来目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进行(或再次Base64)传输。那么,Base64到底起到什么作用呢?在参数传输的过程中经常遇到的一种情况:使用全英文的没问题,但一旦涉及到中文就会出现乱码情况。与此类似,网络上传输的字符并不全是可打印的字符,比如二进制文件、图片等。Base64的出现就是为了解决此问题,它是基于64个可打印的字符来表示二进制的数原创 2020-09-08 11:41:01 · 289 阅读 · 0 评论 -
Spring Framework
介绍:Spring Framework核心支持依赖注入,事务管理,Web应用程序,数据访问,消息传递,测试和更多功能。Spring 官网:https://spring.io/ Spring 文档:https://spring.io/guides Spring Project:https://spring.io/projects 项目快速生成器:https://start.spring.io/Spring框架为现代基于Java的企业应用程序提供了一个全面的编程和配置模型 - 在任何类...原创 2020-09-05 15:06:29 · 1064 阅读 · 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 · 488 阅读 · 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 · 885 阅读 · 0 评论 -
mysql总结
@[toc]MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL是开源的,所以你不需要支付额外的费用。 MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。 MySQL使用标准的SQL数据语言形式。 MySQL可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python原创 2020-06-27 17:32:20 · 1522 阅读 · 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 · 2379 阅读 · 0 评论 -
java零散知识记录
Paht:1.Paths.get(s).normalize(); get方法返回拼接字符串后的路径。可以是一个参数,也可以是多个。normalize方法是返回删除冗余名称元素的路径。 在许多文件系统中,“ . ”和“ .. ”是用于指示当前目录和父目录的特殊名称。 在这样的文件系统中,所有单独出现的“ . ”和“..”都被认为是冗余的,但是如下面ss..一起出现就不会删除。 如果“ .. ”前面有一个非“ .. ”的名称,那么这两个名称都被认为是冗余的(识别这些名称的过程被重复,直到它不再适用),只删除原创 2020-06-03 13:18:36 · 915 阅读 · 0 评论 -
java中Annotation详解
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。主要作用:Annotation其实是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用Annotation,程序开发人员可以在不改变原有逻辑的情况下,在源文件嵌入一些补充信息。如代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证或者进行部署。Java ...原创 2020-04-09 15:49:05 · 1931 阅读 · 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 · 1658 阅读 · 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 · 445 阅读 · 0 评论 -
游戏中的状态同步和帧同步
1、状态同步:顾名思义,是指的将其他玩家的状态行为同步的方式,一帮情况下AI逻辑,技能逻辑,战斗计算都由服务器运算,只是将运算的结果同步给客户端,客户端只需要接受服务器传过来的状态变化,然后更新自己本地的动作状态、Buff状态,位置等就可以了,但是为了给玩家好的体验,减少同步的数据量,客户端也会做很多的本地运算,减少服务器同步的频率以及数据量。2、 帧同步:RTS游戏常采用的一种同步技术 ,上一...原创 2020-03-15 16:42:25 · 353 阅读 · 0 评论 -
java树的整理
用树的原因:因为它通常结合了另外两种数据结构的有点:一种是数组,一种是链表,在树中查找数据项的速度和在有序数组中查找一样快,并且插入数据项和删除数据项的速度和链表一样。路径:设想一下顺着链接点的边从一个节点走到另一个节点,所经过的节点顺序排列就称为“路径”。根:树顶端的节点就称为根,一棵树只能有一个根,从根到任意节点有且只有一条路径。父节点:每个节点上面的节点为此节点的父节点,...原创 2020-03-12 18:13:26 · 875 阅读 · 0 评论 -
unity的RectTransform
RectTransform继承于Transform,配合Canvas专门交给UGUI使用.控制UI的大小旋转缩放等。1.Anchorunity中的ui元素是有严格的父子关系的,子物体的位置是根据父物体的变化而变化的,而子物体和父物体联系的桥梁就是Anchor。在recttransform面板中可以调整锚点的值.min和max表征的是该点所在位置占父物体大小的比例.(默认左下角为0,0点,右...转载 2018-12-11 17:38:40 · 6348 阅读 · 0 评论 -
java网络通信
java已经将网络程序所需要的东西封装成不同的类,只要创建这些类的对象,使用相应的方法,就可以实现网络通信。服务器-----------网络-----------客户机。服务器是指提供信息的计算机或程序,客户机是指请求信息的计算机或程序,通常所说的“局域网”(local Area Network)LAN ,是一群通过一定形式连接起来的计算机,LAN延伸到更大的范围,这样的网络称为“广局网”(w...原创 2018-08-03 16:58:12 · 10610 阅读 · 2 评论 -
什么是CDN?
据了解,2018年1月,阿里云为虎牙提供了边缘节点服务(ENS)。基于阿里云ENS,可以轻松地将业务模块放到边缘运行,在主播的推流时,实现就近节点进行转码和分发,同时支持了高并发实时弹幕的边缘分发。在获得网络低时延的同时,减少了对中心的压力,节省了30%以上的中心带宽成本,并且实现了边缘节点网络连接小于5毫秒延时,提升了主播上行质量,以及用户成功连接占比等数指标,有效提升了用户观看体验。EN...转载 2019-08-08 11:28:52 · 236 阅读 · 0 评论 -
ExecutorService学习
转载:https://blog.csdn.net/fwt336/article/details/81530581在我们的日常开发中,难免会使用到线程,部分还会用到多线程并发问题。我们知道,线程的创建和释放,需要占用不小的内存和资源。如果每次需要使用线程时,都new 一个Thread的话,难免会造成资源的浪费,而且可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪。不利于扩展,比如...原创 2019-03-28 16:24:08 · 662 阅读 · 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 · 65589 阅读 · 15 评论 -
C#的委托和java里的委托
C#:委托是方法的代理,委托的是方法,当调用委托时就调用了它的方法,是一类行为的抽象,是一种自定义数据类型。它有统一的返回类型和参数。1.定义委托:访问级别delegate 返回值 委托的名称(参数组成)delegate void Handler(); 2.创建委托:Handler handler = new Handler(Fun);Fun是当前类中的方法名称。3.调用委托, handle...原创 2018-11-01 18:23:45 · 3327 阅读 · 0 评论 -
JDBC操作数据库
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL(SQL 是用于访问和处理数据库的标准的计算机语言。)语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC是连接数据库和java程序的桥梁,通过...原创 2018-08-05 17:14:48 · 295 阅读 · 0 评论 -
Java第12篇输入输出I/O和ASCII码
先说一下路径中的“/”和“\”:一般可以认为是”/”的作用等同于”\”,在java中路径一般用”/”,windows中的路径一般用”\”.linux、unix中的路径一般用”/” .所以在java中写windows路径一般用”/”,或用“\”将”\”转义一下,就成了”\”。1.java中浏览器地址栏网址使用 斜杆/ ;2.windows文件浏览使用 反斜杠\ ;3.出现在html ur...原创 2018-07-10 14:49:21 · 2743 阅读 · 0 评论 -
Java第九篇反射和异常处理
上一篇已经介绍了C#类和java类的区别,由于工作原因经过三天的间断整理才合完,以备后面复习时对比。这里把发射单独做一篇讲解。首先;当程序要使用某个类时,如果该类还未被加载到内存,则系统通过加载(通过类加载器完成),连接,初始化实现对这个类的加载。加载:就是指将class文件读入内存,并为之创建一个Class对象,任何类被使用时都会建立一个Class对象。连接:验证:是否有正确的内部结构,并和...原创 2018-07-05 00:29:17 · 2036 阅读 · 0 评论 -
Swing程序设计
Swing是 GUI(图形用户界面)开发工具包,在AWT(CLI)(抽象窗口工具包)的基础上使开发开发跨平台的java应用程序界面成为可能,早期的AWT依赖于本地系统,Swing开发的不受平台限制,也就是说,用swing开发的java应用程序移植到其他系统平台时其外观界面不会改变,这是因为Swing组件内部提供了相应的用户界面,而这些用户界面是纯java语言编写的,而不依赖与本地平台,所以swin...原创 2018-07-17 16:45:10 · 2131 阅读 · 0 评论 -
Java第七章 类和对象
可将将类看做是对象的载体1.对象:静态部分,动态部分,静态的为属性,动态的为行为。面向对象的三大特点:1.封装:封装变化,让封装的类或组件,尽量只负责一个领域的工作.。2.继承:主要利用对象的共性解决同样的问题,概念形成统一,通过继承可以管理多个概念。3.多态:同一个行为的不同表现方法 ,解决父类的方法在子类不适合的问题。主要思想:分而治之,高内聚,低耦合,封装变化。...原创 2018-07-03 00:11:31 · 598 阅读 · 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 · 225 阅读 · 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 · 186484 阅读 · 3 评论 -
lua里的一些特殊方法和变量
1.pcall (f, arg1, ···):pcall在保护模式(protected mode)下执行函数内容,同时捕获所有的异常和错误。若一切正常,pcall返回true以及“被执行函数”的返回值;否则返回false和错误信息(打印出来即可)。Lua 代码可以显式的调用error函数来产生一条错误。成功后的多个返回值要用多个变量接收, f 后面的都为参数。Calls function...原创 2018-11-06 12:25:09 · 837 阅读 · 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 · 3331 阅读 · 0 评论 -
ReentrantLock问题记录
说ReentrantLock前我们先了解一下Lock与AbstractQueuedSynchronizer(AQS),Doug Lea大师为我们提供了大量实用,高性能的工具类,这些代码在java.util.concurrent包下。包的结构大概是:lock简介我们下来看concurent包下的lock子包。锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享...原创 2019-03-21 18:23:17 · 1041 阅读 · 0 评论 -
ConcurrentHashMap,CopyOnWriteArraySet「E」,BlockingQueue
1.ConcurrentHashMap:大家都知道HashMap是非线程安全的,Hashtable是线程安全的,但是由于Hashtable是采用synchronized进行同步,相当于所有线程进行读写时都去竞争一把锁,导致效率非常低下。而ConcurrentHashMap避免了为整个容器上锁。JDK1.8以前他把整个容器分成了若干个段(Segment),而这些段数组的容量是固定的。每个段又相当于一...原创 2019-03-20 20:01:09 · 964 阅读 · 0 评论 -
U3D游戏中的贝塞尔曲线以及其在Unity中的实现
定义:一般的,在平面直角坐标系中,如果曲线上任意一点的坐标x,y都是某个变数't’的函数{x=f(t),y=g(t)并且对于't‘的每一个允许值,由上述方程组所确定的点M(x,y)都在这条曲线上,那么上述方程则为这条曲线的参数方程,联系x,y的变数't‘叫做变参数,简称参数,相对于参数方程而言,直接给出点的坐标间关系的方程叫做普通方程。(注意:参数是联系变数x,y的桥梁,可以是一个有物理意义和几何...转载 2019-01-18 19:32:02 · 844 阅读 · 0 评论 -
Unity的一些基础性东西
1.Unity是单线程的游戏引擎,unity的非主线程中无法访问Unity的API,这种限制的原因:游戏中逻辑更新和画面更新的时间点要求有确定性,必须按照帧序严格保持同步,否则就会出现游戏中的对象不同步现象。2.生命周期:我们在自己脚本里写OnApplicationQuit,OnDisable,OnDestroy三个函数时的执行顺序于书写顺序一样,是因为在OnApplicationQuit里调...原创 2018-12-18 11:49:36 · 436 阅读 · 0 评论 -
Unity里的协程和lua里的协同
线程:一个线程在程序中和其他线程是异步运行的,在多处理器机器中一个线程可以同时与所有其他线程的实时运行其代码,这使得线程编程能够解决很复杂的事情,因为可能在相同的时间里一个线程在改变它而另一个线程正在读取它,正因为如此,你必须通过锁,以确保这种情况不会由任何确保没有共享内存发生.Unity中可以开启多线程, 但是只有主线程能访问Unity的方法。协程(coroutine)与多线程情况下的线程比...原创 2018-12-15 14:35:11 · 1817 阅读 · 0 评论