自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 问答 (1)
  • 收藏
  • 关注

原创 解决笛卡尔积

消除笛卡尔乘积最根本的原因不是在于连接,而是在于唯一ID,就像学号,一个学生就只有一个学号,学号就是这个学生的唯一标识码。 左连接只是以左边的表为基准,左边的ID和右边ID都是唯一,就不会产生笛卡尔现象,如果右边有两个ID对应左边一个ID,就算你是左连接,一样会产生1对多的现象...

2021-11-12 17:17:52 2922

原创 java并发包

java中常用的map、list,queue都不是线程安全的,concurrent包提供了线程安全的实现1.concurrentHashMap内部使用(segement)来表示不同部分,每个段其实是一个小的hashTable,有自己的锁。只要多个修改操作发生在不同的段上,它们就可并发的进行,把一个整体分成了16个segment,就是支持16个线程的并发修改操作这是多线程场景减小锁的粒度...

2020-04-02 23:47:34 184

原创 多线程知识点资源整合

1.线程安全所谓线程安全是指一个类(对象或者方法)在多个线程访问情况下,始终表现出正常的行为,那么这个类(对象或者方法)就被称之为线程安全2.synchronizedsynchronized取得的锁都是对象锁,而不是把一段代码(方法)当做锁...

2020-03-30 22:44:51 127

转载 Java多线程之内存可见性和原子性:Synchronized和Volatile的比较

Java多线程之内存可见性和原子性:Synchronized和Volatile的比较【尊重原创,转载请注明出处】http://blog.csdn.net/guyuealian/article/details/52525724在说明Java多线程内存可见性之前,先来简单了解一下Java内存模型。(1)Java所有变量都存储在主内存中(2)每个线程都有自己独立的工...

2020-03-25 14:12:01 143

转载 子类继承父类,重写父类的synchronized方法,两个synchronized方法的锁对象的问题

这是java并发编程实践中有关重入概念的介绍时产生的问题publicclassWidget{publicsynchronizedvoiddoSomething(){...}}publicclassLoggingWidgetextendsWidget{publicsynchronized...

2020-03-25 12:15:38 802

原创 start和run的区别

1.start()方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码:通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。然后通过此Thread类调用方法run()来完成其运行操作的,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程终止,而CPU再运...

2020-03-24 21:10:13 369

原创 myBatis知识点复习

1.mybatis是典型的面向接口编程,接口的名称作为对应映射XML的namespace,XML的Id则和接口的方法对应。映射的XML需要注册到mybatis.config.xml配置文件中2.mybatis的核心是SqlSessionFactory,任何一次和数据库的交互都需要使用SqlSessionFactory.openSession()方法获得一个和数据库的连接,然后进行操作3.标...

2020-03-23 23:40:09 132

转载 Spring事务传播属性和隔离级别

一、Spring事务传播属性(Propagation):1) REQUIRED(默认属性)如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。被设置成这个级别时,会为每一个被调用的方法创建一个逻辑事务域。如果前面的方法已经创建了事务,那么后面的方法支持当前的事务,如果当前没有事务会重新建立事务。2) MANDATORY支持当前事务,如果当前没有事务,就抛出异常。3) N...

2020-03-22 10:38:55 164

原创 JVM内存管理

首先看一下JVM的内存划分方法区和堆属于线程共享区; 即所有线程共享方法区和堆的存储区域虚拟机栈和本地方法栈及程序计数器属于线程独占区,即每个线程都会分配到内存用于虚拟机栈和本地方法栈及程序计数器程序计数器1.程序计数器位于线程独占区,是一块较小的内存空间,他可以看做是当前线程所执行的字节码的行号指示器2.如果线程执行的是java方法,记录JVM字节码指令地址,如果执行n...

2020-03-19 22:48:47 107

原创 适配器模式

大家都见过电源适配器吧,电源适配器就是最典型的适配器模式的实现假设A公司对竞争对手B公司进行了收购重组A公司希望重组后和B公司的采购程序用同一套程序假设A公司的采购程序如下class CollectA{ void collect() { ...//具体采购过程 }}B公司采购程序·如下class CollecB{void pl...

2020-03-13 13:21:15 110

原创 命令模式

假设我们现在有一个遥控器,但是现在我们想用这一个遥控器去控制房间所有的电器,假设每个电器最多有四个操作,而且遥控器上只有5或者6个按钮,怎么办呢命令模式给了我们一个解决思路首先我们需要一个命令接口Interface ICommand(){ excute();unexcute();}然后我们可以将所有电器的Command实现这个接口,例如LightComman...

2020-03-13 12:25:06 125

原创 单例模式

单例模式ensure one Class hasonly once instance.怎么保证呢,将类的构造函数设为private,使得无法从外部获得该对象的实例,只能从内部获得class Singleton{ private Singleton singleton; private Singleton(){} public static getSingletonI...

2020-03-12 17:58:19 86

原创 工厂模式与抽象工厂模式原来如此简单

何为工厂,批量生产同类相同产品。理解到编程上,既为可以产生相同实例的类。为什么我们需要工厂?想想我们小时候玩的宇宙飞船游戏,利用飞船轰击石头可以使石头变碎我们才能通关,但是石头变碎后会产生不同数量的碎石块,并且每上升一个关卡石头变碎产生的碎石的数量和速度都会变多和变快。假设每一关都有3种石头,这三种石头发散的速度和发散的石块各不相同。而且随着关卡升级,这三种石头发散的速度和发散的石...

2020-03-12 16:01:38 99

原创 装饰器模式

首先谈谈装饰器模式,装饰器模式是可以动态的赋予对象本身没有的功能,注意动态的添加,也就是说这种添加是在运行时而非编译时。再谈谈装饰器模式,比如某商场卖芭比娃娃,然后假设现在只有一种芭比娃娃,长头发、白色连衣裙、红色高跟鞋系统对这个芭比娃娃进行模拟class BabiDoll{String hair;String clothes; void exceute(){...

2020-03-11 23:38:49 107

原创 策略模式

策略模式在JAVA中体现出了组合优于集成的特点。相比于在继承中写入固定的算法,策略模式提供了一种更加富有弹性的注入方法,这一特性依赖于JAVA多态的特性。具体用例子就知道了Class Duck(){ fly(){...}}比如我们有一个Duck类,现在有个WildDuck类继承自duck类,实现了自己的fly方法,然后有个CityDuck类也继承了Duck,但是Cit...

2020-03-11 17:51:04 104

转载 为什么redis 是单线程还这么快

转载链接:https://cloud.tencent.com/developer/article/1120615以前一直有个误区,以为:高性能服务器 一定是 多线程来实现的原因很简单因为误区二导致的: 多线程 一定比 单线程 效率高。其实不然。在说这个事前希望大家都能对 CPU 、 内存 、 硬盘的速度都有了解了,这样可能理解得更深刻一点,不了解的朋友点:CPU到底比内存跟硬盘快多少...

2020-03-10 13:23:23 151

原创 Redis的持久化方式

开门见山,redis的持久化方式共两种 RDB和AOF1.RDBRDB 即snapshoting,我理解就是Repeat-Database(个人了理解)。这是一种将内存中数据通过dump文件转储到磁盘的方式,即每次快照都会获得当前数据的一次完整快照,并以dump文件存在电脑的盘中。每次快照开始,redis都会folk(),即启动一个完全相同的子进程进行快照的工作,而父进程只需要完成redi...

2020-03-09 22:41:13 118

原创 对于JAVA基础37问题的解答

这些回答是参考了一些资料自我总结的答案,希望大家可以一起来补充讨论1. 面向对象和面向过程的区别面向对象因为有继承、封装、多态的特性,所以可以编写出耦合低,可复用,可扩展的代码。面向过程的效率比面向对象高。为什么效率高呢?C也需要计算偏移量和分配内存啊。脚本语言就一定比?JAVA效率高吗?JAVA效率低主要是因为JAVA最终生成的代码不是机器码,而是二进制的字节码,JVM将字节...

2019-10-18 11:56:50 3148 7

原创 JAVA基础

最近看了Github上一个巨良心的java项目。准备跟着这个项目对java基础进行一下夯实。首先对JAVA基础做一下回顾1. 面向对象和面向过程的区别面向过程面向对象2. Java 语言有哪些特点?3. 关于 JVM JDK 和 JRE 最详细通俗的解答JVMJDK 和 JRE4. Oracle JDK 和 OpenJDK 的对比5. Java和C++的区别?6. 什么是...

2019-09-25 15:59:38 7243 3

原创 win10JAVA_HOME重设无效原因

最近项目需要更改JDK版本,在JAVA_HOME中重设后 用 java -version验证版本还是没有变究其原因打开path发现多了一个系统自带的javapath,如下所示该路径打开可以看到java.wx等原java版本的东西我们把自己的JAVA_HOME放到这个之前就行了下图就是移好之后的样子再验证下就成功了^-^...

2019-07-08 13:31:33 1655

空空如也

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

TA关注的人

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