![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 66
枫止水
just do it
展开
-
常用正则表达式
常见正则原创 2022-10-08 14:59:32 · 106 阅读 · 1 评论 -
JVM调优
0.常见配置汇总1)堆大小设置:-Xms 初始堆大小 -Xmx 最大堆大小 -Xmn 设置年轻代大小,整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8 -Xss 设置线程大小,JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为...原创 2019-11-08 07:56:07 · 139 阅读 · 1 评论 -
Java高级特性——反射
一、简介定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。面试经常问:如何在一个类中访问另一个类的私有方法或属性?答:1.通过几种方式获得类对象,然后通过getDeclaredField()获取Field对象,再设置字段对象的s...原创 2019-11-05 14:47:00 · 266 阅读 · 0 评论 -
数据结构——栈
一、简介1.什么是栈我们用一种最简单的生活常识描述一下,比如我们往柜子里放东西,先放的东西是需要放到柜子最里边,后放的东西在柜子的最外边;如果我们要取东西,先要取柜子最外边的东西,才能取到柜子最里边的东西。这种先进后出,后进先出的结构称为“栈”。也可以看做是羊肉串,制作时候最后一块穿上的,在吃的时候回第一口被吃掉(正常情况下,排除一口撸一串的)。2.栈的特点先进后出,后进先出...原创 2019-10-28 11:37:14 · 137 阅读 · 0 评论 -
高并发学习总结
It's a long long story.Be patient!Java并发系列——原子更新类所在包:java.util.concurrent.atomic1、原子更新基本类•AtomicBoolean:原子更新布尔类型。•AtomicInteger:原子更新整型。•AtomicLong:原子更新长整型。方法•int addAndGet(int delta):以原子方式将输...原创 2019-07-25 17:43:14 · 158 阅读 · 0 评论 -
设计模式——代理模式
一、简介动态代理在Java中有着广泛的应用,比如Spring AOP、Hibernate数据查询、测试框架的后端mock、RPC远程调用、Java注解对象获取、日志、用户鉴权、全局性异常处理、性能监控,甚至事务处理等。代理模式:给某一个对象提供一个代理,并由代理对象来控制对真实对象的访问。代理模式是一种结构型设计模式。代理模式有三大角色:1.抽象接口类 Subject2....原创 2019-11-07 11:15:49 · 104 阅读 · 0 评论 -
java 1.8常用新特性
一、Java8 Lambda表达式lambda表达式也可称为闭包,允许把函数作为参数参数传递进方法中。可以使代码变得简洁。1.1语法(params)->expression或(params)->{statements;}特征:可选类型声明:无需声明参数类型,编译器统一识别;可选的参数圆括号:一个参数无需定义圆括号,多个参数需要定义圆括号;可选的大括号:主体为...原创 2019-10-16 15:02:24 · 241 阅读 · 0 评论 -
equals与==比较
1.====比较的是栈内存中存放的对象的内存地址,用来判断2个对象地址是否相同,即是否指向同一对象。(范围:栈)(1)比较的是操作符两端的操作数是否同一对象。(2)两边操作数必须是同一类型(包括父子类之间)。(3)比较的是地址,如果是基本数据类型的,值相等则为true。如int a =50与long b=50L与double c=50.0比较都是相等的(true),因为他们指向地址...原创 2019-07-26 11:01:42 · 123 阅读 · 0 评论 -
synchronized学习笔记
1.可重入:指的同一线程的外层函数获得锁之后,内层函数可以直接再次获取该锁。(递归锁)好处:避免死锁,提升封装性粒度:线程方法调用自己,方法调用其他方法,方法调用父类方法;2.不可中断一旦锁被别人获得,如果我还想获取,之鞥选择等待或者阻塞,直到其他线程释放该锁。Lock可以中断的!6.缺陷(1)效率低:锁释放情况少、试图获得锁时不能设定超时、不能中断一个...原创 2019-07-25 17:26:50 · 78 阅读 · 0 评论 -
Synchronized详解
1.作用能够保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发安全的效果。2.地位(1)synchronized是java关键字,被java原生语言支持;(2)最基本的互斥同步手段(3)高并发中元老级角色3.对象锁和类锁对象锁:包括方法锁(默认锁对象为this当前实例对象)和同步代码块锁(自己指定锁对象)方法锁示例1:/** * 对象锁示例——方法修...原创 2019-07-25 14:31:21 · 127 阅读 · 0 评论 -
java方法中参数传递小结
很简单的java基础,竟然有点遗忘了,是在不改,烂笔头记录一下。 1、当对象作为参数传递时,传递的是对象的引用,也就是对象的地址。值实时更新!(一般项目中常见的对象作为参数很多,记住对象会在方法中实时更新!!!因为方法中操作的是同一个对象)public class ParameterTransfer { public static void main(String[] ar...原创 2018-08-27 16:14:54 · 367 阅读 · 0 评论 -
Springboot中controller接参几种形式
一、请求路径参数1.@PathVairable获取路径参数,url{id} 形式。2.@RequestParam获取查询参数,url?name= 形式。实例GEThttp://localhost:8282/helloworld/2019?name=Naland对应java代码://@RequestMapping(value = "/helloworld/{id...原创 2019-01-22 18:26:10 · 579 阅读 · 0 评论 -
SpringAOP切面编程实现 映射表关系自动关联
一、背景最近有个项目要求不改动业务表的前提下,实现应用切换,已有业务表t_a,t_b,t_c,关系映射表t_config_mapping,应用列表t-app,t_user等等,我的任务是完成表间关系映射,查看时用到了mybatis拦截器,插入时用了申请springAOP拦截并做了统一处理。这里着重介绍SpringAOP的实现。(对mybatis感兴趣的可以关注下我博客的另一篇,其中包含了很多踩...原创 2019-02-26 11:41:46 · 368 阅读 · 0 评论 -
Java IO流小结与常用类之间的相互转换
一、简介Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列,也就是大家习惯称呼的字节流和字符流。网上有个很好的比喻:数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流。数据写入程序可以是一段、一段地向数据流管道...原创 2019-04-10 16:14:05 · 621 阅读 · 0 评论 -
如何利用SFTP充当文件服务器
背景项目中有了上传文件的需求,但是因为文件服务器申请比较麻烦,开发测试阶段先用了现有SFTP服务搭建文件服务器。实现了文件的上传下载。由于不太懂运维相关的知识,其实网上有很多用nigix搭建的教程,所以只得借助java搭建了文件服务,下面给大家分享下实现过程:一、搭建SFTP服务,这个挺简单的,感兴趣的可以参照http://www.cnblogs.com/yanduanduan/p/9...原创 2019-04-19 16:23:54 · 869 阅读 · 1 评论 -
设计模式一简单工厂模式,工厂模式和抽象工厂模式
写在前面:设计模式,面试被提问率100%的知识点,体现你编程思路和面向对象理解,在各个框架中设计模式被应用的非常广泛。行了,吹不下去了,一句话,这很重要。。。工厂模式:定义了一个用于创建对象的接口,让子类决定实例化哪个类,工厂方法使一个类的实例化延迟到其子类。一般含有一下对象:1、抽像工厂类Factory 定义一个创建对象的接口 2、生产对应的产品的具体工厂类ConcretePro...原创 2019-05-06 16:49:08 · 131 阅读 · 0 评论 -
Spring AOP无法拦截内部方法
Spring AOP无法拦截内部方法调用spring aop之对象内部方法间的嵌套失效来看一个内部调用失败的经典例子://如果存在事务,则抛出异常。public class TxDemo{ @Transactional(propagation = Propagation.NEVER) public void serviceH() { UserInfoV...原创 2019-05-20 16:57:44 · 997 阅读 · 0 评论 -
并发编程——AtomicInterger与i++
一、对比在高并发的情况下整形数值自增并不是线程安全的,在双11抢购是发统计某网页浏览量,这时可以用到原子更新整形AtomicInteger。先看个例子:public class TestAtomicInteger { static int a=0; public static void main(String args[]){ CountDownLa...原创 2019-07-04 15:21:31 · 1061 阅读 · 0 评论 -
JavaBean,POJO,VO,DTO的区别和联系
1.JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 的属性。2.VO即value object值对象主要体现在视图的对象,对于一个WEB页面将整个...原创 2018-08-27 15:14:53 · 219 阅读 · 0 评论