自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

转载 mysql 随机数 rand使用

生成随机数生成0-3的随机数SELECT RAND() * 3最大不会超过3,SELECT FLOOR(RAND() * 3)上面生成整数的值是0,1,2,3生成的随机整数是1,2,3的话,语句如下SELECT FLOOR(1 + RAND()*3)这句话写得好,希望更多人看到:无论从事什么行业,只要做好两件事就够了,一个是你的专业、一个是你的人品,专...

2019-06-09 14:06:00 443

转载 Linux下oracle数据库启动和关闭

注意:如果系统的环境变量配置没有加载,需要手工加载一下,然后再开始执行后续操作。第一步:登陆root登陆之后切换到oracle用户上,输入su oracle第二步:连接在oracle用户下,输入sqlplus /nolog第三步:使用管理员权限 ,输入connect /as sysdba第四步:启动/关闭服务,输入startu...

2019-06-09 12:02:11 24352 1

原创 PowerDesigner MySQL auto_increment

用PowerDesigner设计MySQL的数据表时,不知道如何给int类型的主键设置auto_increment,经过一番baidu问题终于解决。具体如下:1、打开表是设计器,如图,点击:图标Customize Columns and Filter(或直接用快捷键Ctrl+U)2、在打开的窗口中,选中:identity ,如下图:3、关闭列过滤器后,会看到表设计器多了一...

2019-05-22 23:43:24 707

原创 SpringBoot中使用Schedule

一、基本方法有了SpringBoot貌似一切都变了非常简单,定时任务也不用整合quartz了,直接schedule就欧了。具体咋用?非常简单。1、引入POM依赖Spring的Schedule包含在spring-boot-starter模块中,无需引入其他依赖。2、开启注解支持在启动类增加注解:@EnableScheduling3、轻松上手使用A、Cron表达式 ...

2019-05-05 23:06:20 6818

原创 Spring事务控制:使用方法,传播机制,隔离级别

一、Spring事务有两种使用方式:1、编程式事务使用TransactionTemplate或者底层的PlatformTransactionManager对事务进行管理,常用TransactionTemplate2、声明式事务底层基于AOP代理模式,有另种使用方式:1、基于aop和tx的xml配置;2、基于@Transactional注解Spring事务的传播机制和隔离级...

2019-04-18 23:13:48 209

原创 Spring模块及用途

1、核心容器(Spring core)核心容器是Spring框架的重要组成部分,提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。其主要包含spring-core,s...

2019-04-14 12:11:34 390

原创 关系数据库设计三范式

为了建立冗余小,结构合理的数据库,设计数据库时必须遵循一定的规则,在关系数据库中这种规则叫做范式。范式是符合某种设计要求的总结。要设计一个结构合理的数据表,那么就必须满足一定的设计范式。1、第一范式:确保每列都是原子的按照业务场景的需求,确保每列都是不可再拆分的,原子列。比如,数据表中有“地址”列,而该列在实际应用中,需要展示省份、城市等明细,那么我们在设计数据表时,就不能用一...

2019-04-14 11:49:53 200

原创 二叉树知识点

树是一种常用的非线性数据结构,用于描述分支、分层关系。一、基本概念1、什么是二叉树?二叉树是也是一种树,一个节点最多有两个子树结构。2、什么是节点的度?节点的子树个数,叫做节点的度,所以二叉树节点的度最大为2。3、什么是叶子节点?没有子树的节点叫叶子节点,叶子节点的度为0。4、什么是节点的深度?节点在底几层,节点的深度就是多少。二、基本特性1、二叉树...

2019-04-08 23:31:57 382

原创 Java类加载机制

1、java.lang.ClassLoader功能:用于加载类,根据类名加载类字节码(.class文件),定义一个Class类实例;常用方法:01、getParent():获取当前加载器的父类加载器;02、loadClass(String name):通过指定的类名,加载类字节码,生成一个java.lang.Class的实例;03、findClass(String name):...

2019-04-05 15:31:49 241

原创 JVM常用命令工具

JVM给我们提供了一些用于监控管理的命令,具体查看JDK的bin目录:可见工具非常多,我们来一一看看常用的命令。一、命令01、javac:将.java文件编译成.class文件02、java:执行.class文件03、javah:基于.class文件生成C++ .h头文件,主要用于jni调用时使用,如下:/* DO NOT EDIT THIS FILE -...

2019-04-05 13:38:33 1812

原创 Java动态代理

Java的动态代理分为两种:1、基于原生Java API实现,依赖于反射机制;要点:A、被代理类必须实现接口B、代理处理类要实现接口:java.lang.reflect.InvocationHandler,实现invoke方法,通过反射方式完成逻辑调用,同时可以分装入前置、后置的代理逻辑;C、通过Proxy.newProxyInstance(obj.getClass().get...

2019-04-04 00:01:26 134

原创 Java垃圾收集

一、找到“垃圾”——死亡对象方法:1、引用计数算法,记录每个对象的引用情况;2、可达性分析法,从“GC Roots”对象作为起点,然后向下搜索,搜索走过的路径称为“引用链”,如果一个对象没有任何引用链,那么就表示这个对象不可达,已没有在使用,可以被回收;二、垃圾收集算法1、标记清除法:标记出不用的对象地址,然后再逐个清除掉; 缺点:会导致内存不连续;2、...

2019-04-03 22:55:09 103

原创 JVM内存结构

JVM内存结构图:运行时区域主要包含:方法区、堆区、虚拟机栈、本地方法栈、程序计数器所有线程共享的区域有:方法区和堆区线程之间隔离的区域有:虚拟机栈、本地方法栈和程序计数器各个区域的用途是:1、方法区:存储虚拟机加载的类信息、常量、静态变量及JIT编译后的代码等信息;2、堆区:存放对象实例,几乎多有的对象实例都在这里分配,垃圾收集主要针对的也是这个区域;3、虚拟机栈...

2019-04-03 22:36:06 388

原创 Java ArrayList分批处理

List分批处理,相信很多人都遇到过这种场景,那么我们来举例看下。比如:获取到一大批数据后,需要入库,那么该怎么处理呢?按本人经验,有如下几种情况:1、循环入库这种方式最为简单,但是效率最低,且消耗资源。2、整批入库这种方式,表面看没啥问题,效率比较高,但是实际却暗藏风险。你想,当这批数据巨大时,几千上万条,你如果一次入库,那么很可能会挂死。3、分批入库这种方式,个人感...

2019-03-29 00:05:54 1622

原创 设计模式之模板方法

1、先说抽象类抽象类是一种魔化代码的神器,纵观大佬们写的代码,对它的运用可谓是出神入化,令人佩服无比。为啥说其是魔化神器?个人感觉,抽象类如果可以好好运用,可以使你的代码看上去入魔入幻,不易理解,但是又能优雅的避免重复代码,实现上下层代码相容,让你的方法逻辑存在于无形之中,堪称牛X。2、啥是模板方法?含义:就是把实现某流程的节点方法做抽取,抽取到一个抽象类中,并定义流程入口方法...

2019-03-28 22:42:11 164

原创 定义常量Map

我们知道在java编程中,定义常量时必须用到:static final,既是静态的,又是不可修改的;普通类型的常量可以这么定义,但是对于集合类型的常量,我们该怎么定义才好用呢?本文就来讲一下常量Map的定义,如有错误欢迎大家指点批评!一、普通类型常量定义举例如下:private staic final String SERVICE_URL="XXXXXXXX";这样就完成了...

2019-03-23 16:20:15 8880

原创 Eclipse&IDEA查看类的层次结构

Eclipse:方法1:选中类名,然后按键盘F4,这样可以打开:Type Hierarchy视图,可以选择查看类的底层实现,或者上层继承,见下图:方法2:选中类名,然后执行快捷键:CTRL+T,可以通过悬浮框的方式查看类层次,见下图:IDEA:方法1:选中类名,然后执行快捷键:CTRL+H,效果见下图:查看类继承结构的用途:个人感觉,便于整体理解源码,益...

2019-03-14 23:36:55 10031

原创 看博客,不要广告

大家是不是对CSDN引入的百度广告很是反感?不知大家啥感受,反正我是很烦这个,你TM显示就算了,还不停的轮播!!!の,严重影响LZ认真看文章,早就想干掉他了,今天突然之间有个想法,得搞个chrome插件,把这个干掉,不然这样忍下去,估计LZ要变成忍者了。。。说实话,之前没写过chrome插件,只安装过一些插件,开始研究。推荐文章:https://www.cnblogs.com/...

2019-03-13 23:59:12 854 1

原创 线程安全之Runnable多实例和单实例

多个线程访问共享变量,会导致线程安全问题,导致共享变量值被非预期改变。那么什么情况会导致共享变量存在呢?1、类的静态变量2、多个线程,单个Runable实例,其内部全局变量是共享的本文主要说明Runnable多实例和单实例(即:上述第2点)的区别及可能产生的问题,详细见代码及注释。import java.util.concurrent.TimeUnit;/** * *...

2019-03-11 23:57:55 1216 2

原创 JNI调用及回调(参数传递字节数组)

最近协助同事解决了JNI调用及回调问题,在此做个记录,备忘。问题是这样子的:同事要开发一个java程序,用来控制摄像头的抓拍,且要通过回调字节流的方式,将抓拍的图片吐给java模块,然后再调人脸识别服务。期间遇到不少问题,最开始用JNA实现了整体功能,但是测试过程发现回调总是不稳定,照片有些时候传不回来。无耐之下,只要改用JNI再试,谁知JNI果然比JNA复杂,又是各种问题,不过还好问题都解决...

2019-03-10 11:25:58 6895 2

原创 阻塞队列之DelayQueue

特点1、内部队列基于PriorityQueue,其要求放入的元素不能为null2、放置在内的对象,只有满足条件:到期 且 排在队列出口的 才能取出3、放置在内的对象必须实现Delayed接口,该接口有个getDelay方法,用于判断是否到达执行时间示例代码/** * DelayQueue 可以延时取出的队列 * 注意: * 内部元素必须实现接口: Delayed...

2019-03-05 22:38:35 808

原创 System类详解

特点1、是java.lang包的一个类,我们知道java.lang里放的都是一些java编程的基础类;2、该类是final的,即:不可以被继承,没有子类,其内部的方法默认也都是final的;3、该类不能被实例化,内部全是一些static变量和方法,可以方便的被调用;4、System代表系统,系统级的很多属性和方法都放置在该内内部;5、内部有很多方法属性都是native的,即:涉...

2019-03-03 12:43:49 1448

原创 阻塞队列之PriorityBlockingQueue

PriorityBlockingQueue特点:1、可以指定内部元素的排序规则(即出队规则),即实现该接口的对象:java.util.Comparator<T>;2、内部数据结构是对象数据组,Object[] queue;3、默认长度:11,最大长度:Integer.MAX_VALUE - 8;4、不支持放入空值,会抛异常:NullPointerException...

2019-02-26 23:22:05 928

原创 阻塞队列之LinkedBlockingQueue

LinkedBlockingQueue特点:1、数据结构:单向链表;2、有界队列,默认长度为:Integer.MAX_VALUE;3、和ArrayBlockingQueue一样,不允许放入空值;4、元素按FIFO排序;对比ArrayBlockingQueue:1、存储结构不同,ArrayBlockingQueue 采用对象数组存储数据;LinkedBlockingQueue...

2019-02-21 22:37:56 936

原创 阻塞队列之ArrayBlockingQueue

1、ArrayBlockingQueue特点:a、底层数据结构是数组,Object[];b、插入、读取操作都有加锁,线程安全;c、有界队列,必须指定容量;d、支持公平锁和非公平锁,构造参数可以指定;2、常用方法及特点2.1、构造方法 //构造1:仅指定容量 public ArrayBlockingQueue(int capacity) { ...

2019-02-19 23:16:56 884

原创 Java提供的阻塞队列

Doug Lea大师为我们提供了多种阻塞队列,其中有:ArrayBlockingQueue--数组构成的有界阻塞队列LinkedBlockingQueue--链表构成的有界阻塞队列PriorityBlockingQueue--支持优先级排序的无界阻塞队列DealyQueue--使用优先级队列构建的无界阻塞队列SynchronousQueue--一个不存储元素的阻塞队列Lin...

2019-02-18 23:22:04 849

原创 深入浅出Java线程池

使用线程池的好处:1、线程可以复用,减少创建、销毁线程的资源开销;2、避免创建线程,提高效率;3、便于对线程统一管理、监控等。大神Doug Lea为我们提供了多种构建线程池的方法:1、直接构造ThreadPoolExecutor对象源码分析: //构造方法1:使用默认的线程工厂,默认的拒绝策略(中止策略,直接抛RejectedExecutionException) pu...

2019-02-16 18:26:24 902

原创 可以阻塞放入的线程池

java.util.concurrent.Executors为我们提供了多种构造线程池的方法,可以构造多种类型的线程池对象,可以满足多种业务需求。但是并没有提供一个可以阻塞放入的线程池,业务场景描述如下:我们有个任务表,任务会自动增加。我们需要多线程来处理任务表的任务,主线程一次取出50个任务,然后放入线程池处理,如果使用普通的线程池,取出任务马上就放进了线程池队列,如果任务过多,可能会导...

2019-02-15 22:56:28 1420 1

原创 排查Spring事务注解不起作用的原因

今天帮同事排查了个Spring事务不起作用的问题,Spring Boot项目,加了事务注解,但是事务不起作用,到底是啥原因导致事务没起作用呢?经过一番排查,终于找到了原因,在此做个记录,以备再用。事务不起作用的原因:1、看使用的是啥数据库,注意:MySQL的MyISAM引擎是不支持事务的,支持事务需要使用InnoDB引擎;2、@Transactional注解要添加再public方法上,否...

2019-02-15 21:52:38 1182

原创 JNA调用C编写的DLL

我们团队目前开发的产品是用java语言编写的,大家都知道,java编写的代码随便都可以被反编译,导致别人可能会看到你“裸奔”的样子。所以,为了避免这种安全隐患,团队最终商定,将部分核心代码改用c语言编写,封装为dll,再由java调用。于是乎,我们就开始jna初探。今天通过各种百度,终于做了个例子出来,在此做个记录,以备后路之需。1、构造一个dll由于本机的vs2015没有安装c++模...

2019-02-13 23:36:25 948

JNI调用及回调就(Java&C) 源码

Java通过JNI方式调用别人写的DLL,并涉及到DLL C代码回调Java程序,并传递二进制参数回来。业务:java控制摄像头,摄像头抓拍到图片后,传字节流给java,Java做存储

2019-03-10

空空如也

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

TA关注的人

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