自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

架构师:通透,才能写出好代码!

也许当我老了,也一样写代码。不为别的,只为爱好。

  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 【小家java】java8新特性之---反射获取方法参数名

方法的参数名,在很多时候我们是需要反射得到的。但是在java8之前,代码编译为class文件后,方法参数的类型是固定的,但参数名称却丢失了,这和动态语言严重依赖参数名称形成了鲜明对比。(java是静态语言,所以入参名称叫什么其实无所谓的)。虽然名称无所谓,但很多时候,我们需要此名称来做更好的安排.比如mybatis的Dao层接口方法,需要特意用个注解@Param来显示标识出参数名,当时写的时候...

2018-07-30 20:11:14 6760 2

原创 【小家java】java8新特性之---Base64加密和解密原理

概述Base64是一种字符串编码格式,采用了A-Z,a-z,0-9,“+”和“/”这64个字符来编码原始字符(还有垫字符“=”)。一个字符本身是一个字节,也就是8位,而base64编码后的一个字符只能表示6位的信息。也就是原始字符串中的3字节的信息编码会变成4字节的信息。Base64的主要作用是满足MIME的传输需求。 在Java8中Base64编码已经成为Java类库的标准,且内置了Ba...

2018-07-30 17:54:42 3141

原创 【小家java】java8新特性(简述十大新特性) 饱受赞誉

截止稿前,java10都已经发布了,现在我们来讨论一下java8。 本文的讨论,只是一个简述,更加具体的,各位可以参照各自的专题讲解说在前面Java 8可谓是自Java 5以来最具革命性的版本了,她在语言、编译器、类库、开发工具以及Java虚拟机等方面都带来了不少新特性。我们来一一回顾一下这些特性。一、Lambda表达式Lambda表达式可以说是Java 8最大的卖点,她将函数式...

2018-07-30 15:41:31 14638 8

原创 【方向盘】蚂蚁金服(2018年)Java一面面试题

蚂蚁金服面试题2018

2018-07-30 15:32:10 2640 3

原创 【小家java】 Restful风格的API设计中,怎么实现批量删除?

如题,指的是在restful风格的url设计中,怎么实现批量删除呢? 这里指的删除是真删除,不是逻辑删除。如果是逻辑删除,其实就是update,使用put方法即可如果是需要删除一个条目,可以直接将需要删除的条目的id放进url里面,比如http://example.com/posts/2016,但是如果需要再一次请求里面删除多个条目,应该如何设计比较合理呢?我现在想到的是以下两种方法...

2018-07-27 16:27:15 20582 8

原创 【小家java】使用lambda表达式传参是否有性能问题?

随着java8的普及,lambda表达式的书写日益增多。咱们看下面一个例子: 编程有一条原则如下: 避免创建不必要的对象:最好能重用对象,而不要在每次需要的时候就创建一个相同功能的新对象。List<String> names = Arrays.asList("peter", "anna&q

2018-07-27 15:38:12 5999 2

原创 【小家java】使用volatile关键字来实现内存可见性、实现轻量级锁

内存可见性volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩。  为了能比较清晰彻底的理解volatile,我们一步一步来分析。首先来看看如下...

2018-07-27 14:46:00 1489 2

原创 【小家java】Java反射性能问题,你真的需要考虑吗?

Java的反射,是我们进阶的敲门砖。反射肯定比直接调用慢,这个毋庸置疑了,我这篇文章也不是证明反射有多高效的。我举个快递小哥的例子:举个栗子如果快递员就在你住的小区,那么你报一个地址:xx栋xx号,那么快递员就可以马上知道你在哪里,直接就去到你家门口;但是,如果快递员是第一次来你们这里,他是不是首先得查查百度地图,看看怎么开车过去,然后到了小区是不是得先问问物管xx栋怎么找,然后,有可...

2018-07-26 18:19:44 4180 3

原创 【小家java】HashMap原理、TreeMap、ConcurrentHashMap的原理、性能、安全方面大解析-----看这一篇就够了

Map的遍历问题,选择哪种方式性能最优? java8之后提供了lambda表达式的遍历方式。因此如果可以用lambda表达式遍历,那就毫无疑问的直接选择即可。遍历方式代码如下: //entrySet方式:key和value一次性都拿出来 for (Entry<String, String&amp

2018-07-21 21:40:54 2715

原创 【小家java】一道多线程面试题引发对BlockingQueue的使用的思考

在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。题目:面试题:有两个线程A,B, A线程每200ms就生成一个[0,100]之间的随机数, B线程每...

2018-07-21 15:38:52 1860

原创 【小家java】并发编程中wait/notify await/singal notify/notifyAll sleep/yield 的区别以及死锁案例

并发编程中,容易混淆的一些概念和方法使用,本文来解惑。是否释放锁:调用sleep和yield的时候不释放当前线程所获得的锁,但是调用await/wait的时候却释放了其获取的锁并阻塞等待。调用后何时恢复:sleep让线程阻塞,且在指定的时间之内都不会执行,时间到了之后恢复到就绪状态,也不一定被立即调度执行; yield只是让当前对象回到就绪状态,还是有可能马上被再次被调用执行...

2018-07-21 14:02:08 1065

原创 【小家java】JUC并发编程之Synchronized和Lock、ReadWriteLock、ReentantLock的使用以及原理剖析

我们很多人在学习多线程开发的时候,一遇到并发问题就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。 但是我们知道synchronized是一把重量级的锁,对效率是不友好的,所以在JDK1.5版本之后,推出了轻量级的锁Lock。但是呢,随着Javs SE 1.6对synch...

2018-07-20 18:01:35 1557 1

原创 【小家java】Java里的进程、线程、协程 、Thread、守护线程、join线程的总结

说到线程,很多人最直观的感受就是多线程。本章不讨论高并发、多线程之类的。返璞归真,咱们来讨论讨论线程这个东西到底是什么东西,着眼于线程本身,我们怎么玩? 为了了解线程,这里我不得不搬出来线程的概念了: 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.(比如一个qq程序就是一个进程或者多个进程),系统进行资源分配的最小单位.。进程比...

2018-07-20 14:37:25 2282 2

原创 【小家java】Java中Random ThreadLocalRandom 设置随机种子获取随机数精讲

我们都知道,随机数在太多的地方使用了,比如加密、混淆数据等,我们使用随机数是期望获得一个唯一的、不可仿造的数字,以避免产生相同的业务数据造成混乱。 在Java项目中通常是通过Math.random方法和Random类来获得随机数的。那么本文针对于这两种产生随机数的方法进行源码级别的精度,让你以后不再犯错。先说平时使用绝大多数情况,我们其实是想通过此类来生成一个随机整数。此处不鳌诉推倒...

2018-07-19 14:42:51 3070

原创 【小家java】Java中5种创建对象的方法,你知道几种?

作为一个Java开发者,一种面向对象的语言,我们每天都创建很多对象。但后续我们开发中,采用了spring的依赖管理系统,我们就很少自己去创建对象了,全部交给容器去托管,那么本篇文章回源塑本,讲述一下java中能够创建一个对象的5中方法。 本文最大的特色是,我不仅给出案例,还给出对应的字节码解释,从底层来解释现象1.使用new关键字这是最常见也是最简单的创建对象的方式了。通过这种方...

2018-07-18 18:31:57 972

原创 【小家java】Java反射机制中Class.getXXX()和Class.getDeclaredXXX()的使用区别和注意事项

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 那么本文就针对性说明一下,在我们使用反射时候经常用到也是经常会让我们迷糊的一些方法的区别。getMethods()和getDeclaredMethods的区别我们先来看看Class...

2018-07-18 11:29:33 2934 1

YourBatman的端午节祝福:代码雨可执行jar包

一年一度的端午节到了,基于Java的AWT写了一个“代码雨”,寄托笔者对大家的祝福,这是可执行jar包,下载下来直接执行"java -jar codeRainApp.jar"即可运行看到效果

2022-06-03

空空如也

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

TA关注的人

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