深入理解 Spring 事务原理

Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获取连接 Connection con = DriverManager.getConnection...

2019-04-22 09:54:46

阅读数 4

评论数 0

MySql按一个字段分组并且取另一个字段最大值的记录

要求:获得按table1_id分组,并且age最大的记录信息,即2、3、5条 方法一: select * from (select * from table2 order by age desc) as a group by a.table1_id 1 方法二: select a.* fro...

2019-04-18 08:25:22

阅读数 2

评论数 0

Git最佳实践:基本操作和分支管理

概述 GIT是一个开源的分布式的版本控制系统,是由Linus 为了管理Linux内核开发而开发的一个开源的版本控制软件。相比SVN,它采用分布式版本库方式。 工作区,暂存区和版本库 左侧为工作区,编辑文件所在的目录,右侧为版本库,其中index区域是暂存区,标记为"master...

2019-04-16 18:21:54

阅读数 6

评论数 0

只读事务(@Transactional(readOnly = true))的一些概念

从这一点设置的时间点开始(时间点a)到这个事务结束的过程中,其他事务所提交的数据,该事务将看不见!(查询中不会出现别人在时间点a之后提交的数据) 应用场合: 如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持SQL执行期间的读一致性; 如果你一次执行多条查询语句,例如统计查...

2019-04-15 10:38:12

阅读数 4

评论数 0

史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!

想往高处走,怎么能不懂 Dubbo? Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉。 下面我为大家准备了一些 Dubbo 常见的的面试题,一些是我经常问别人的,一些是我过去面试遇...

2019-04-09 17:05:42

阅读数 50

评论数 0

java多线程的6种实现方式详解

多线程的形式上实现方式主要有两种,一种是继承Thread类,一种是实现Runnable接口。本质上实现方式都是来实现线程任务,然后启动线程执行线程任务(这里的线程任务实际上就是run方法)。这里所说的6种,实际上都是在以上两种的基础上的一些变形。 下面分别就这6中实现方式一一介绍。 第一种方式...

2019-04-03 15:16:08

阅读数 8

评论数 0

Java面试题内容聚合

点击上方“Java知音”,选择“置顶公众号” 技术文章第一时间送达! 往期内容聚合 设计模式内容聚合 面试技术文 Java岗 面试考点精讲(基础篇01期) Java岗 面试考点精讲(基础篇02期) Java岗 面试考点精讲(网络篇03期) Java 面试中遇到的坑 J...

2019-04-02 20:05:57

阅读数 33

评论数 0

爬虫IP被禁的简单解决方法(转)

爬虫以前听上去好厉害好神秘的样子,用好了可以成就像Google、百度这样的索索引擎,用不好可以凭借不恰当的高并发分分钟崩掉一个小型网站。写到这里想到12306每年扛住的并发请求量,觉得好牛逼。 爬虫和反爬虫从一直以来都是一个道高一尺魔高一丈的架势。反爬虫技术增加了爬取的难度,各路crawler的...

2019-04-02 19:11:25

阅读数 8

评论数 0

理解maven命令package、install、deploy的联系与区别

我们在用maven构建java项目时,最常用的打包命令有mvn package、mvn install、deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命令还是有区别的。下面通过分别执行这三个命令的输出结果,来分析各自所执行的maven的生命周期。 ...

2019-04-02 09:40:14

阅读数 5

评论数 0

java 线上问题定位工具

在JDK的bin目录下有很多命令行工具:   我们可以看到各个工具的体积基本上都稳定在27kb左右,这个不是JDK开发团队刻意为之的,而是因为这些工具大多数是jdk\lib\tools.jar类库的一层薄包装而已,他们的主要功能代码是在tools类库中实现的。命令行工具的好处是:当应用程序部...

2019-03-22 17:16:49

阅读数 10

评论数 0

类加载器详解

类加载器是负责将可能是网络上、也可能是磁盘上的class文件加载到内存中。并为其生成对应的java.lang.class对象。一旦一个类被载入JVM了,同一个类就不会被再次加载。那么怎样才算是同一个类?在JAVA中一个类用其全限定类名(包名和类名)作为其唯一标识,但是在JVM中,一个类用其全限定类...

2019-03-22 16:56:10

阅读数 8

评论数 0

MySQL索引优化

MySQL官方对索引的定义:索引是帮助MySQL高效获取数据的数据结构。索引是在存储引擎中实现的,所以每种存储引擎中的索引都不一样。如MYISAM和InnoDB存储引擎只支持BTree索引;MEMORY和HEAP储存引擎可以支持HASH和BTREE索引。   这里仅针对常用的InnoDB存储引擎...

2019-03-22 15:54:34

阅读数 7

评论数 0

MySQL主从复制的实现过程

一、什么是主从复制 将主数据库中的DDL和DML操作通过二进制日志(BINLOG)传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。 二、主从复制的作用 1、主数据库出现问题,可以切换到从数据库。 2、可以进行数据库层面的读写分离, 3、可以在从...

2019-03-22 15:32:14

阅读数 9

评论数 0

什么是B+Tree

B+Tree的定义 B+Tree是B树的变种,有着比B树更高的查询性能,来看下m阶B+Tree特征: 1、有m个子树的节点包含有m个元素(B-Tree中是m-1) 2、根节点和分支节点中不保存数据,只用于索引,所有数据都保存在叶子节点中。 3、所有分支节点和根节点都同时存在于子节点中,在子...

2019-03-22 11:19:10

阅读数 6

评论数 0

基础篇-爬虫基本原理

本文为自己动手,丰衣足食!Python3网络爬虫实战案例的学习笔记,部分图片来源于视频截图。 爬虫:请求网站,并提取数据的自动化程序请求网站,并提取数据的自动化程序 爬虫基本流程 在了解爬虫的定义之后,那么再来看看爬虫是如何工作的吧。 第一步:发起请求。一般是通过HTTP库,对目标站点进行...

2019-03-22 09:08:55

阅读数 9

评论数 0

Java性能调优

写Java也有n年了,现在还是有不少的坏的代码习惯,也通过学习别人的代码学到了不少好的习惯。这篇文章主要是整理的资料。留给自己做个警戒,提示以后写代码的时候注意!在文章的后面,会提供整理的原材料下载。 一、类和对象使用技巧 1、尽量少用new生成新对象 用new创建类的实例时...

2019-03-21 15:51:23

阅读数 6

评论数 0

JVM内存管理,Minor GC和Full GC触发机制总结

1、Java垃圾回收机制 GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从g...

2019-03-18 07:02:27

阅读数 4

评论数 0

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa { static { System.out.println("爷爷在静态代码块"); } } cl...

2019-03-12 17:17:57

阅读数 12

评论数 0

MYSQL与POSTGRESQL相比哪个更好?

网上已经有很多拿PostgreSQL与MySQL比较的文章了,这篇文章只是对一些重要的信息进行下梳理。在开始分析前,先来看下这两张图: MySQL MySQL声称自己是最流行的开源数据库。LAMP中的M指的就是MySQL。构建在LAMP上的应用都会使用MySQL,如WordPress、Dr...

2019-03-12 14:30:30

阅读数 16

评论数 0

抽象类和接口的区别与应用场景

接口和抽象类有什么区别 在应用场景下,选择使用接口和抽象类的依据是什么? 一、抽象类和接口在语法上的异同: 1、相同点 都不能被实例化 2、不同点 第一点. 接口是抽象类的变体,接口比抽象类更加抽象,接口中所有的方法都是抽象的。 第二点. 每个类只能继承一个抽象类,但是可以实现多个...

2019-03-08 15:25:20

阅读数 8

评论数 0

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