自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 MySQL引擎——InnoDB和MyISAM的区别

前言MySQL 是一个支持多引擎的系统, 主要有以下几种:MyIsamInnoDBMemoryBlackholeCSVPerformance_SchemaArchiveFederatedMrg_Myisam而在实际应用中,比较常用的就是InnoDB和MyISAM这两种,但是大多数人都不太清楚两者的区别,为什么MyISAM会被InnoDB取代?这篇文章就重点讨论它们的区别。crash-safecrash-safe 简单来说,就是即使数据库发生异常重启,之前提交的记录也不会丢失。

2020-06-10 15:10:23 150

原创 深拷贝和浅拷贝到底有什么区别?

浅拷贝只是拷贝了引用类型属性的地址,而深拷贝拷贝了引用类型属性的数据,实现了完全拷贝。

2023-02-08 14:28:09 190

原创 【CSS】表单input文件上传样式优化

input文件上传样式优化

2022-12-20 17:08:36 1039

原创 Oracle数据库查询所有表、字段和注释

1. 表获取对于获取表信息,可供选择的表有:all_tables:所有用户的表dba_tables:所有用户表+系统表user_tables:当前用户的表all_objects:所有表+索引+序列等select * from user_tables; //当前用户的表 select * from all_tables; //所有用户的表 select * from dba_tables; //包括系统表select * from dba_tables where ow

2021-02-24 15:42:03 760

原创 ORACLE实例静默安装

前言最近接到了一个任务,部署一下项目,需要在数据库服务器上新建一个实例,以前没有做过这类的工作,忙活了一下午,也算是完成了,写一个博客,记录一下,以后或许用的着。新建实例查找dbca.rsp文件位置:find . -name dbca.rsp,如下图所示。找到该文件,拷贝一份并进行修改,主要修改内容如下:OPERATION_TYPE = “createDatabase” 注:该变量取决你的需求;GDBNAME = “YCDF” 改为你想要创建的实例名称;SID = “YCDF” 改为你想

2020-12-23 15:34:42 554

原创 ASCII码值与字符的相互转换

前言ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。在编程中可以借助ASCII编码的字符解决一些常见的问题。字符转ASCII码 /** * 字符转ASCII码 * @param n * @return */ public st

2020-09-20 16:40:58 8813

原创 1.导论——JAVA性能权威指南笔记

1.1 概述主要介绍本书各章节的主要内容。1.2 平台版本约定本书基于Oracle HotSpot JVM 和Java Standard Edition 7和8,Java企业版的内容是基于Java EE 7。JVM调优标志:除了少数例外,JVM主要接受两类标志:布尔标志和附带参数的标志。布尔标志语法:-XX: +FlagName 表示开启,-XX: -FlagName 表示关闭。附带参数的标志采用以下语法: -XX: FlagName= something ,表示将标志FlagName设置为s

2020-07-06 09:30:07 188

原创 toString()方法和StringUtils里的join()方法差异对比

今天在写代码时,想要把一个接收的集合转换成用逗号隔开的字符串,想到是用toString()方法可以呢还是用StringUtils.join()方法可以呢?两者之间有什么差别呢?就写了一个简单的测试代码做了一个小测试,代码如下:import org.apache.commons.lang.StringUtils;import java.util.ArrayList;import java.util.HashSet;import java.util.Set;/** * toString()方法和

2020-06-02 09:28:54 717

原创 缓存穿透、缓存击穿以及缓存雪崩的含义和解决方案

前言最近在哔哩哔哩上看到了有老师讲redis缓存相关的视频,看完后就内容做一个总结

2020-05-26 17:09:36 439

原创 死锁发生的四个条件

互斥,共享资源 X 和 Y 只能被一个线程占用;占有且等待,线程 T1 已经取得共享资源 X,在等待共享资源 Y 的时候,不释放共享资源 X;不可抢占,其他线程不能强行抢占线程 T1 占有的资源;循环等待,线程 T1 等待线程 T2 占有的资源,线程 T2 等待线程 T1 占有的资源,就是循环等待。...

2020-05-19 09:10:31 248

原创 虚拟机中Java对象的创建

前言这篇文章主要是介绍一下Java对象在虚拟机中是如何创建的?由什么组成?又是如何访问到的?文中讨论的只是普通的Java对象,不包括数组和Class对象等。对象的创建对于对象的创建过程,不同的虚拟机有不同的实现方式。指针碰撞空闲列表...

2020-01-02 16:45:22 166 1

原创 Java虚拟机运行时数据区域

前言最近刚换了新工作,忙于理解新的业务,就没有什么时间写博客,今天抽空写一篇关于Java虚拟机运行时内存分配的文章,闲言少续,开整。根据Java虚拟机规范第7版,规定了Java虚拟机所管理的内存会包含以下几个数据区域,如下图接下来对每一个区域的特点进行简单的概述。1. 程序计数器程序计数器占用的内存比较小,主要作用是告诉线程下一步该执行哪一个字节码指令。因此,为了保证线程切换后能恢复到...

2019-12-24 13:06:00 93

原创 事务的特性和隔离级别

前言只要跟数据库打交道,肯定离不开事务,那什么是事务呢?简单来说,事务就是要保证一组对数据库的操作,要么成功,要么失败。对于MySQL而言,事务是在引擎层实现的,MySQL原生的MyISAM是不支持事务的,这也是MyISAM 被InnoDB取代的原因之一。四个特性事务有四种特性,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Dur...

2019-11-20 14:18:46 86

原创 MySQL两大日志模块——redo log(重做日志)和 binlog(归档日志)

前言在MySQL数据库的使用中,肯定会遇到需要数据恢复到之前的某一时刻的需求,也会遇到数据库异常重启的情况,MySQL都是怎么解决这些问题的呢?这就需要依赖MySQL的redo log和binlog这两个重要的日志模块了,接下来分别说明这两个模块的作用。重做日志 redo logMySQL在做数据更新操作时,如果每次都需要写进磁盘的话,那么需要到磁盘中找到对应的那条记录,然后更新,这样下来...

2019-11-19 18:48:47 609

转载 JDK内置的及第三方实现的线程池拒绝策略

前言谈到java的线程池最熟悉的莫过于ExecutorService接口了,jdk1.5新增的java.util.concurrent包下的这个api,大大的简化了多线程代码的开发。而不论你用FixedThreadPool还是CachedThreadPool其背后实现都是ThreadPoolExecutor。ThreadPoolExecutor是一个典型的缓存池化设计的产物,因为池子有大小,当池...

2019-11-14 16:19:39 213

原创 线程池(ThreadPoolExecutor)的七大参数

在4种常见的线程池创建方式这篇文章里,通过查看源码发现,线程池的创建底层都是通过下面这个方法实现的,这个方法里有七个参数,也是面试中常常问到的知识点。public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...

2019-11-12 11:47:52 1193

原创 4种常见的线程池创建方式

为什么使用线程池(线程池的优点):线程复用:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗;提高响应速度:当任务到达时,不需要等待线程的创建就可以立即执行;提高线程的可管理性:线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。线程池的实现:通过Executors.newFixedThreadPo...

2019-11-11 17:09:24 972

原创 自旋锁(spinlock)的理解

1.什么是自旋锁?是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,这样的好处是减少线程上下文切换的消耗;缺点是循环会消耗CPU资源。jdk中的rt.jar包的unsafe类中getAndAddInt方法就采用了自旋锁,源码如下: // unsafe.getAndAddInt public final int getAndAddInt(Object var1, long v...

2019-11-07 15:50:07 1336

原创 可重入锁(递归锁)的理解

1.什么是可重入锁?可重入锁,也称递归锁,指的是同一线程外层函数获得锁之后,内层递归函数仍能能获取该锁。同一个线程中,在外层方法获取锁后,进入内层方法会自动获取锁。线程可以进入任何一个它已经拥有的锁所同步着的代码块。ReentrantLock、Synchronized 都是典型的可重入锁。2.可重入锁有什么作用? 可重入锁最大的作用就是可以避免死锁。...

2019-11-07 15:08:12 929

原创 公平锁与非公平锁

公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,有先来后到。非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。在高并发的情况下,可能会造成优先级反转或者饥饿现象。 Lock lock = new ReentrantLock();当使用ReentrantLock的空参构造方法时,默认为非公平锁,源码如下: /** *...

2019-11-06 16:09:02 172

原创 Thread类中start()方法和run()方法的区别

首先,通过继承Thread类的方式,创建一个线程,然后分别在主线程中调用run()和start()方法,观察两者输出的区别,代码如下:package Demo;/** * @ClassName:MyTheard * @Description:通过thread创建线程 * @Author:legend Chan * @Date:2019/11/5 4:16 下午 * @Version...

2019-11-05 16:44:51 255

原创 表ADT的两种实现

表的简单数组实现对表的所有操作都可以通过数组来实现,它可以使得printList以线性时间被执行,而findKth操作则花费常数时间,不过,插入和删除的花费却潜藏着昂贵的开销,这取决于插入和删除发生在什么地方。最坏的情况下,插入和删除发生在数组的最前端,那么整个数组的元素都将后移或者是前移一个位置。最好的情况下,即插入和删除发生在数组的末端,那么就没有元素需要移动。所以,在很少对表进行插入...

2019-10-28 15:21:29 785

原创 递归程序的四个基本法则

基准情形。必须总要有某些基准情形,它无需递归就能解出。不断推进。对于某些需要递归求解的情形,每一次递归调用都必须使状况朝向某一种基准情形推进。设计法则。假设所有的递归调用都能运行。合成效益法则。在求解同一问题的同一实例时,切勿在不同的递归调用中做重复性工作。...

2019-10-27 16:04:54 390

原创 MySQL基本架构及各个组件的作用

连接器 主要用于与客户端建立连接、获取权限、维持和管理连接,连接命令: `mysql -h$ip -P$port -u$user -p` 输完命令后,输入密码,如果密码正确,会到权限表中查看该用户拥有的权限,这个连接里面的权限判断逻辑都依赖于登录时查到的权限,也就是说连接的权限仅取决于连接建立时的权限,修改权限的话,要重新建立新的数据库连接。数据库建立连接的过程比较复杂,尽量使用长连接...

2019-09-29 14:51:59 1034

原创 【Java】集合对象按照指定属性排序(比如姓名拼音排序)

最近项目里需要对集合中的对象按照name属性排序,要求name属性按照字母排序后,返回集合结果,下面是实现方式:首先要实现排序的对象要实现Comparable类,重写该类的compareTo方法,方法里写明要比较的属性,代码如下:```package com.longcloud.oapm.portal.experience.vo;import javax.persistence.Col...

2019-07-09 12:36:53 2276

空空如也

空空如也

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

TA关注的人

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