自定义博客皮肤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)
  • 收藏
  • 关注

原创 Oracle查询某个列的所有表名

工作小记

2022-12-02 15:28:21 525

原创 寻找数组的中心索引

给定一个整数类型的数组nums,请编写一个能够返回数组 “中心索引” 的方法。我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释:索引 3 (nums[3] = 6) 的左侧数之和 (1 + 7 + 3 = 11),与右侧数之和 (5 + 6 = 11) .

2020-12-22 15:22:10 135

原创 字符串压缩

字符串压缩:字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串public String compressString(String str) { if (str.length() == 0) { return str; } StringBuffer sb = new StringBuffer()

2020-12-22 14:27:40 175

原创 设计模式之单例模式

使用场景:需要频繁的进行创建和销毁的对象,创建对象耗时较多或耗费资源过多(重量级对象),经常用到的对象,工具类对象,访问数据库或者文件对象(比如数据源,session工厂等)。推荐使用以下四种方式:1.饿汉式如果可以确定肯定会使用的话,也可以使用,懒汉式容易出问题不太推荐。class Singleton{ private Singleton(){ } private final static Singleton INSTANCE=new Singleton();

2020-08-03 01:00:29 128

原创 阿里外包面试

springioc的理解aop的原理以及是否使用过。spring常用注解 注入方式排序算法数据库索引多线程的使用,线程池原理,四种本地线程池及区别项目介绍以及负责模块使用的技术,分布式事务如何解决,集合list hashmap put原理 扩容机制 长度为啥是2的幂次方 、maven(阿里问了两次) 生命周期 以及 jar...

2019-05-10 13:56:43 4703

原创 JDK动态代理

AOP一般有两种实现方式一种是jdk动态代理,另一种是Cglib代理。两者的区别是:JDK动态代理只能对实现了接口的类生成代理,而不能针对类,CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法(继承)。 JDK动态代理接口类public interface IHello { void sayHello();}实现类public class Hell...

2019-05-09 17:55:36 120

原创 JVM常用参数

-Xms20M: 表示设置JVM启动内存的最小值为20M,必须以M为单位。 -Xmx20M: 标识设置JVM启动内存的最大值为20M,必须以M为单位。将-Xms和-Xmx设置为一样可以避免JVM内存自动扩展。大的项目-Xms和-Xmx一般都要设置到10G,20G甚至更高。 -verbose:gc 表示输出虚拟机中GC的详细情况 -Xss128k 表示可以设置虚拟机栈的大小为128...

2019-05-05 10:59:21 375

原创 CAS

CAS(compare And Swap)即比较与交换,CAS是乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其他线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以在此尝试。它包含三个参数:V内存值,A期望值,B要修改的新值。当且仅当期望值A与内存值V相同时,将内存值V修改为B,否则什么都不做。...

2019-05-04 22:32:30 141

原创 volatile的作用

可见性:是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的 禁止指令重排序优化。volatile 性能:  volatile 的读性能消耗与普通变量几乎相同,但是写操作稍慢,因为它需要在本地代码中插入许多内存屏障指令来保证处理器不发生乱序执行...

2019-05-04 22:15:55 126

原创 索引优化

什么是索引? 索引是一种特殊文件,对数据库表里的所有记录的引用指针。通俗来讲,索引相当于目录。 索引的优缺点 加快数据的检索速度,提高系统性能。 索引需要额外的维护成本。因为每个索引都是单独存在的文件,队数据的增加,修改,删除,都会产生额外的对索引文件的操作,这些操作会消耗额外的io,会降低增删改的执行效率。 创建索引的方式。 在执行CREATE TABLE语句时可以创建索引...

2019-05-04 22:05:32 140

原创 HashMap

1.为什么hash表的默认长度为16?哈希表的容量一定要是2的整数次幂?HashMap中则通过h&(length-1)的方法来代替取模,实现了均匀的散列,效率也高很多。 length为2的整数次幂的话,为偶数,这样length-1为奇数,奇数的最后一位是1,这样便保证了h&(length-1)的最后一位可能为0,也可能为1(这取决于h的值),即与后的结果可能为偶数,也可能为奇...

2019-05-04 20:13:27 195

原创 List如何去除重复元素

1.方法一 public static void removeDuplicate(List list) { for (int i = 0; i < list.size() - 1; i++) { for (int j = list.size() - 1; j > i; j--) { if (list.get(...

2019-04-15 17:16:29 15712 7

原创 ArrayList和LinkedList的区别

ArrayList的内部实现原理是以数组方式去实现的,动态数据有下表随机访问数组元素的效率高,但是插入和删除涉及到数组的移动,比较慢LinkedList的内部实现原理是以链表方式去实现的,链表对查询比较慢,访问数据的平均效率低,需要对链表进行遍历,对插入和删除比较快,只需要改变指针指向即可。...

2019-04-11 17:08:27 148

原创 String,Stringbuffer和Stringbuilder的区别

String,Stringbuffer和Stringbuilder对字符串的拼接是有区别的。 性能方面:Stringbuilder>Stringbuffer>String(+)(for循环里字符串拼接) 线程安全:Stringbuilder(非线程安全,速度快)Stringbuffer(线程安全,速度慢) 如何选择:方法内无线程安全问题使用Stringbuilder,有线程安...

2019-04-11 16:50:42 127

原创 redis

redis是什么redis是一个key-value的nosql数据库,先存到缓存中,在通过一定的策略持久化到硬盘,即使断电也不会丢失数据。 用来干什么:主要用来缓存数据库的数据。redis的使用场景缓存 计数器redis对象保存方式json对象需要将对象转换为json字符串,当字符串处理,直接用set、get。优点:设置和获取比较简单缺点:未提供专门的方法,需要把对象...

2019-04-01 11:43:33 132

原创 spring bean的生命周期

spring bean的生命周期可以对比下servlet的生命周期。Servlet的生命周期:实例化,初始init,接收请求service,销毁destroy;实例化一个bean--也就是常说的new 按照Spring上下文对实例化的Bean进行配置--也就是IOC注入; 如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法...

2019-04-01 11:38:19 145

原创 如何判断一个对象已经被回收?

java虚拟机氛围五个区域,三个线程私有:程序计数器,虚拟机栈,本地方法站,两个是线程共享:堆,方法区。线程私有区域等线程结束时,就会是自动释放掉,空间比较容易清理。线程共享的堆和方法区空间内存大没有线程回收容易产生垃圾,GC垃圾回收的一般就是堆和方法区这两块区域。线程共享也会有线程安全问题。 两种常用方法 引用计数法(已淘汰) 循环引用无法释放资源。比如AB有引用,BC有引用,AC有引用...

2019-03-26 16:43:04 1151

原创 多线程面试题

线程池的优点? 线程是稀缺资源,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以重复使用。 线程池为线程生命周期开销问题和资源不足问题提供了解决方案。可以根据系统的承受能力,调整线程池中工作线程的数量,防止因为消耗过多内存导致服务器崩溃。 线程池的创建 public ThreadPoolExecutor(int corePoolSize, ...

2019-03-22 15:04:37 193

原创 flume

(PollableSourceRunner-TaildirSource-source_ETE_SERV_SCRM) [INFO - org.apache.flume.source.taildir.ReliableTaildirEventReader.readEvents(ReliableTaildirEventReader.java:187)] Last read was never commit...

2018-12-14 16:32:13 736

转载 Dubbo

1 Dubbo介绍1.1 dubbox简介随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。 垂直应用...

2018-04-10 11:42:34 232

空空如也

空空如也

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

TA关注的人

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