瓜哇笔记系列
唯一昵称真难
这个作者很懒,什么都没留下…
展开
-
排序算法集合
1.插入排序 从未排序的集合中找出一个元素,依次与已排序的集合元素进行比较,如果满足规则,小于或是等于,直接插入,依次循环,直至待排序集合元素为空。代码清单.插入排序/** * 直接插入排序 * @param arr */ public void insertSort(int[] arr) { for(int i=1;i&...原创 2018-06-05 22:55:34 · 152 阅读 · 0 评论 -
Java线程
Java线程 提到线程,免不了又要提到进程了。很多时候面试官经常会问的一个问题:线程与进程又什么区别? 进程是os资源分配的基本单位,所有与该进程有关的资源都会被记录在PCB进程控制块中,以表示该进程拥有这些资源或正在使用他们呢。 线程是os能够进行运算调度的最小单位,它被包含在进程当中。在一个进程中的多个线程会共享进程中的资源以及内存(如文件描述符,虚拟地址空间等)。简介...原创 2019-07-09 23:28:34 · 292 阅读 · 0 评论 -
Java的解释执行
关于Java平台的理解Java是一种面向的对象的编程语言,建立在C++基础之上,号称“书写一次,到处运行”(Write once, run anywhere),在多平台可以快速移植,具有超强的跨平台能力。拥有强大的内存回收机制(GC,Garbage Collection),Java通过垃圾收集器对JVM内存回收。 JRE和JDK,作为Java程序员对这两个名词并不没收,JRE提供Java...原创 2019-06-24 23:21:20 · 5463 阅读 · 1 评论 -
Java对象的生命周期
Java对象的生命周期 Java语言除了原始数据类型外,还有一种类型被称之为引用类型。对象的创建一般需要使用new关键字,将创建的对象存储在堆上(heap)。而在线程栈中会保留一个指向堆上地址的引用。下图将展示堆栈之间的具体关系,栈中被分割成一个一个的栈帧(“frames”),其中包含调用树中每个方法的参数和局部变量。当实例化一个对象是,如果是一个Integer对象,那么JVM首尝试...原创 2019-06-26 00:11:16 · 3335 阅读 · 0 评论 -
MyBatis解析
MyBatis解析简介 Mybatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。GitHu...原创 2019-04-28 00:10:26 · 696 阅读 · 1 评论 -
单例设计模式
单例设计模式简介 单例模式是设计模式中最简单的形式之一。 单例设计模式通常来讲,就是确保一个类在一个应用程序中只能存在一个实例,并提供一个访问它的全局访问点。一般我们会提供一个静态方法来供全局访问。应用场景各种资源池类(pool)对象。如:线程池,数据库连接池,HTTP连接池缓存(cache)对话框,前端经常使用的模态框注册表等容器对象,例如:SpringIOC容器等构...原创 2018-12-27 19:30:09 · 191 阅读 · 0 评论 -
快速幂
快速幂快速幂,实际上是快速幂取模的缩写。简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。一般运用到的公式主要如下:ab%n=((a%n)(b%n))%nLeetcode 372. 超级次方 - 题解static int Mod0 = 1337;public static int su...原创 2018-11-13 17:43:35 · 342 阅读 · 0 评论 -
JAVA桥接方法
桥接方法随着JDK的发展,到1.5的时候,引入了泛型(generics)的概念。由于集合类的广泛使用,不得不加上一些安全考虑,因为传统的集合是可以添加任意的类型的数据,我们在取数据的时候,还需要进行手动强制转型,但是我们并不知道我们取出的数据是什么类型的,比如:一个List集合,先加入String,再加入Object,再加入Date,随着容器的扩大,我们根本分不清当前索引位置的值到底是什么类型...原创 2018-11-13 17:42:59 · 302 阅读 · 0 评论 -
Integer解析
作为一名Java开发,相信大家对于Integer都不会陌生,接下来就其分析下开箱与装箱 开箱装箱主要针对于Java中出现的几种包装类,比如int与之对应的Integer。通俗一点的理解就是,Integer可以与int自动的相互转换,这个转换过程对于开发人员来说是透明的,JVM在底层帮我们进行了转化。装箱:举个栗子:Integer i = 10; //Integer i = new In...原创 2018-10-24 23:15:32 · 1660 阅读 · 0 评论 -
LRU缓存算法的实现
LRULRU(Least Recently Used)是一种常见的页面置换算法,在计算中,所有的文件操作都要放在内存中进行,然而计算机内存大小是固定的,所以我们不可能把所有的文件都加载到内存,因此我们需要制定一种策略对加入到内存中的文件进项选择。常见的页面置换算法有如下几种:LRU 最近最久未使用FIFO 先进先出置换算法 类似队列OPT 最佳置换算法 (理想中存在的)NRU C...原创 2018-11-06 21:54:54 · 98580 阅读 · 18 评论 -
MyBatis通用Mapper与分页PageHelper混淆报错问题
背景当同时引入通用Mapper与PageHelper两款插件的时候,会存在报错的可能。如果像这样,先执行通用Mapper,再执行分页插件就会出错 <!-- 通用Mapper插件 --> <plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor"> <property ...原创 2018-10-28 21:54:49 · 1443 阅读 · 0 评论 -
Quartz集群模式的定时任务
基于Quartz2.2.x和spirng 4.3.18构建集群模式下的定时任务引言由于是集群模式下实现定时任务,Quartz内部是通过使用数据库来作为媒介,进行消息的通知,因为所有的机器会操作同一个库,这样不会造成定时任务的混乱。一、引入maven依赖<!-- https://mvnrepository.com/artifact/org.springframework/sprin...原创 2018-10-15 22:58:30 · 3688 阅读 · 2 评论 -
Centos7安装JDK8
下载源码包访问oracel官网下载jdk-8u181-linux-x64.rpm或者访问 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载你想要的版本。添加执行权限当下载好文件后,给文件添加可执行权限chomd +x jdk-8u181-linux-x64.rpm...原创 2018-09-27 18:07:31 · 783 阅读 · 0 评论 -
SpringBoot无法通过注解加载配置文件的属性值
在SpringBoot 2.0.4版本中需要添加如下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactI...原创 2018-09-08 12:21:49 · 1562 阅读 · 0 评论 -
【Mybatis】关于mybatis映射结果集失效的问题
关于mybatis映射结果集失效的问题 在开发中可能会遇到这样的问题,使用mybatis进行结果集与实体类之间的关系映射时,可能会出现某些属性映射不上去的情况.为了方便排查问题我们需要查看mybatis访问数据库SQL信息。 可以在配置Log4J:log4j.logger.com.xxx.dao=TRACElog4j.logger.com.ibatis.common....原创 2018-07-12 20:07:57 · 10809 阅读 · 0 评论 -
【Mybatis】Could not find parameter map Java.util.Map Parameter Maps collection does not contain value
mybatis出现如下错误: org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map Java.util.Map上述原因的产生是由于在XML中定义传输参数的时候,使用了parameterMap代替了parameterMap。Mybatis官方: parameterMap...原创 2018-07-23 17:12:54 · 631 阅读 · 2 评论 -
四则运算的移位实现,以及POW的实现
位运算一、位运算简介 我们先来熟悉下位运算的操作,大致要用到的位运算如下: 与(&amp;)操作,该操作先将数值转换为二进制(如:a=3 =&gt; a=11),然后再进行操作。会对两个数相同的位置上进行操作,如果两个操作数长度不一致,会对值较短的数进行高位补0。(如:a =3 , b = 4, a+b = 011+100);相同位置为全1才为1,有0必为0,则上述结果...原创 2018-06-02 00:11:34 · 925 阅读 · 0 评论 -
深入浅出类加载器机制
类加载器 类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在Web容器和OSGi 中得到了广泛的使用。一般来说...原创 2018-05-31 23:04:47 · 209 阅读 · 0 评论 -
线程池
线程池从字面义上来讲,是指管理一组同构工作线程的资源池。线程池是与工作队列密切相关的,其中在工作队列中(Worker Queue)保存了所有等待执行的任务。工作者(Worker)线程的任务很简单:从工作队列中获取一个任务并执行。执行完毕后,继续获取下一个任务。当队列为空时,等待执行。优势 “在线程池中执行任务”比“为每个任务分配一个线程”有优势得多。多个线程统一维护,方便管理。...原创 2019-07-10 23:15:55 · 289 阅读 · 0 评论