自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

开拖拉机等春天的博客

个人学习分享

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

原创 面试-多线程进阶篇

文章目录1、说说synchronized关键字的底层原理是什么synchronized 同步语句块的情况synchronized 修饰方法的的情况总结2、 什 么 是 可 重 入 性 , 为 什 么 说 Synchronized 是 可 重 入 锁 ?3、说说自己是怎么使用 synchronized 关键字4、构造方法可以使用 synchronized 关键字修饰么?5、说说 JDK1.6 之后的 synchronized 关键字底层做了哪些优化,可以详细介绍一下这些优化吗谈谈 synchronized 和

2021-12-03 17:44:23 2769

原创 面试-多线程基础篇

文章目录1、进程和线程的区别一句话简单了解堆和方法区2、异步和多线程的区别3、为什么要使用多线程,使用多线程的好处?4、使用多线程可能会带来哪些问题5、说说线程的生命周期和状态?6、什么是上下文切换?7、什么是线程死锁?如何避免死锁?认识线程死锁如何预防和避免线程死锁?8、说说 sleep() 方法和 wait() 方法区别和共同点?9、为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?1、进程和线程的区别进程:进程是系统运行程序的基本单位,是程序

2021-12-03 17:39:59 184

原创 代理模式-静态代理 VS 动态代理(JDK动态代理 & CGLib动态代理)

什么是静态代理,静态代理有什么缺点?动态代理中JDK动态代理 & CGLib动态代理的区别和实现过程为什么要有代理模式代理模式是一种结构型设计模式, 让你能够提供对象的替代品或其占位符。 代理控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理。静态代理JDK动态代理public class MyJDKProxy implements InvocationHandler { private UserDao userDao; public MyJDKProxy(U.

2021-08-26 18:49:06 189

原创 代理模式 - 静态代理 VS 装饰者模式

Java开发中,代理模式应用广泛,比如 AOP 的实现原理、日志框架、全局性异常处理、事务处理等。本文先分析一下静态代理与装饰者模式的区别//搜索了不少相关博文,不少把两者混淆,为了搞清楚,让我很是头大区别:对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一个 接口。对代理模式来说,代理类(proxy class)和真实处理的类(real class)都实现同一个接口。他们之间的边界确实比较模糊,两者都是对类的方法进行扩展,具体区别如下:装饰器模式强调的.

2021-08-22 00:12:32 594

原创 了解类加载器

先大概了解一下,后面补充类加载器就是将.class文件加载到内存.JDK中提供的类加载器:引导/系统类加载器 :Java\jre7\lib\rt.jar扩展类加载器 :Java\jre7\lib\ext*.jar应用类加载器 :自定义的类,类路径下的所有class文件.类的加载器的机制 :全盘委托机制.引导类加载器|扩展类加载器|应用类加载器class A{String s;}class文件由应用类加载器获得到,没有加载,向上一层委托向扩展类加载器委托,向上一层进行.

2021-08-21 11:56:51 80

原创 通过HuTool工具类和oshi查询cpu使用率、内存大小、磁盘空间等

通过HuTool工具类和oshi查询操作系统和硬件信息,包括cpu使用率、内存大小、磁盘空间等

2021-08-17 18:30:09 8326 5

原创 通过斐波那契数列学习时间复杂度

时间复杂度首先我们通过递归和遍历求和两种方式来实现对斐波那契数列求和: /** * 求斐波那契数列的和(每个数是前两个的和) * 1 1 2 3 5 8 13 21 34 .... */ public static int fib1(int n) { if(n<=1) return n; return fib1(n-1)+fib1(n-2); } publ...

2020-01-02 14:05:31 285

原创 JDK动态代理与AOP

java代理机制什么是代理代理是一种设计模式,提供了对目标对象另外的访问方式,即通过代理对象访问目标对象。为什么要使用代理对象增强额外的功能操作开闭原则代理模式中的三种角色抽象角色真实角色代理角色代理模式种类静态代理代理类需要开发人员实现,代理类和目标类之间代理关系在编译时就已经确定 如何开发静态代理类,例子: 静态代理的优势: 在不修改

2018-06-02 17:12:30 690

原创 Spring的事务管理

Spring的事务管理Ø 技术分析之Spring框架的事务管理相关的类和API 1. PlatformTransactionManager接口 – 平台事务管理器.(真正管理事务的类)。该接口有具体的实现类,根据不同的持久层框架,需要选择不同的实现类! 2. TransactionDefinition接口 – 事务定义信息.(事务的隔离级别,传播行为,超时,只读)...

2018-06-02 17:07:22 125

原创 Hibernate_优化与事务

延迟加载实体级别的延迟加载集合关联属性的延迟加载抓取策略缓存机制事务简介乐观锁与悲观锁延迟加载什么是延迟加载? 延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。Hibernate中对如下内容提供了延迟加载策略 实体对象的延迟加载 < class >标签中定义lazy属性:true和false可选集合类

2017-09-25 19:32:11 184

原创 Hibernate查询技术

Hibernate查询方式简介HQL语法查询HQL简介HQL使用过程Query接口HQL语法HQL高级查询QBC语句查询QBC查询QBC查询条件样例查询QBC立即获取关联对象QBC统计QBC分组统计原生SQL查询hibernate查询方法选择的建议Hibernate查询方式简介 除了可以通过Session接口提供get()和load()方法获取指定ID的实体对象外

2017-09-21 10:06:20 229

原创 初识Hibernate

目录目录Hibernate概述什么是框架-framework什么是ORM对象关系映射Hibernate框架的快速入门第一步 搭建Hibernate5的运行环境第二步创建表结构第三步 编写Hibernate核心的配置文件第三步 映射第四步 编写Hibernate入门代码Hibernate的核心apiConfigurationSessionFactorySession实体对

2017-09-19 12:39:45 436

原创 注解

注解:jdk5之后提供了一个特性,和类 接口同级 格式: @interface 注解名{}作用: 编译检查 替代配置文件 定义注解(元注解:注解上的注解) 分析代码(用到反射)java中3个注解:(理解) @Override:声明该方法是从分类上继承过来的,执行编译期的检查 @SuppressWarnings:抑制警告 值有好多,只需要

2017-08-17 14:53:02 180

原创 XML与XML解析

xml: 可扩展的标签语言 标签自定义. 作用:存储数据.(配置文件) 书写规范: 1.区分大小写 2.应该有一个根标签 3.标签必须关闭 4.属性必须用引号引起来, 5.标签体中的空格或

2017-08-16 16:03:57 432

原创 Java反射机制

Java的反射机制是Java特性之一,反射机制是构建框架技术的基础所在。灵活掌握Java反射机制,对大家以后学习框架技术有很大的帮助。什么是反射Reflection -反射 在java 运行时 环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用他的任意一个方法? 答案是肯定的,这种动态获取类的信息以及动态调用对象的方法的功能来自于java语言的反射(Refle

2017-08-15 15:30:09 187

原创 Jquery validate插件之表单校验

需求: 通过validate插件来校验表单,validate是别人封装好的第三方工具技术分析: jqery validate一、validate使用步骤: 1. 导入jquery.js 2. 导入validate.js 3. 在页面加载成功后,对表单进行校验 $(“选择器”).validate() 4. 在validate中编写校验规则$("选择器").val

2017-08-11 13:16:14 353

原创 正则表达式

在输入用户名和密码的时候需要验证是否符合一定的规则,正则表达式就是用来验证一个字符或者字符串是否符合一定的规则。不仅是Java,包括JavaScript和数据库等许多语言中都会用到正则表达式, 本文讲解正则表达式的简单使用。方法一://1.String类中matches方法(匹配规则)String s = "a";System.out.printly("s 是否是字母:"+s.matches

2017-07-06 12:09:20 217

原创 自定义View(二)橡皮擦效果

参考自:From AigeStudio(http://blog.csdn.NET/aigestudio)Power by Aige工欲善其事必先利其器,既然想画好图那必须学会画笔和画布的使用,那么今天我们就来看看Android的画笔跟我们现实中的画笔有什么不同呢?setXfermode(Xfermode xfermode)Xfermode国外有大神称之为过渡模式,这种翻译比较贴切但恐怕不易理解,大家

2017-06-10 16:36:48 2004

原创 自定义View(一)

From AigeStudio,Power by Aige自定义view的步骤: 1,自定义view的属性 2,在view的构造方法中获得自定义的属性 [3,重写onMeasure] 4, 重写onDrew那么来画一个不停的从小变大的圆环,效果图: 在Android中自定义一个View类并一定是直接继承View类或者View类的子类比如TextView、Button等等,这里呢我们也依

2017-06-09 21:14:00 276

转载 回调机制详解

参考自:aige studio的博客 阅读这篇文章你不需要太高深的技术功底,只要你会点Java基本的知识,知道什么叫类什么叫接口怎么创建项目,我想相信你看完本章后必定会有收获。 废话不多说,像许多网上介绍回调机制的文章一样,我这里也以一个现实的例子开头:假设你公司的总经理出差前需要你帮他办件事情,这件事情你需要花些时间去做,这时候总经理肯定不能守着你做完再出差吧,于是就他告诉你他的手机号码叫你如

2017-06-08 12:40:45 244

原创 CollapsingToolbarLayout可折叠式标题栏

顾名思义,CollapsingToolbarlayout是一个作用于Toolbar基础之上的布局,它可以让Toolbar的效果变得更加丰富,不仅仅是展示一个标题栏,而是能够实现非常华丽的效果。 不过,CollapsingToolbarlayout是不能独立存在的,它的设计时被限定只能作为APPBarLayout的直接子布局来使用。而AppBarLayout又必须是CoordinatorLayout

2017-06-02 15:30:57 2717 1

原创 生成动态GIF的方法

配置adb环境变量 电脑连接手机 cmd窗口输入adb shell screenrecord /sdcard/example.mp4 然后就可以录制的,默认时间是180s ,一般不需要这么长,录制完之后我们ctrl+c提前结束就行。 视频会被保存在手机sd卡里,搞到电脑里。视频转 gif这儿方法也有很多格式工厂之类的,输入视频格式,导出为gif格式截取很多帧图片,将多张图片拼接为gifQ

2017-06-02 14:54:58 483

原创 RecyclerView的下拉刷新

谷歌为了让Android的下拉刷新风格能有一个统一的标准,于是在Material Design中制定了一个官方的设计规范。当然我们不需要去深入了解这个规范到底是什么样的,因为谷歌早就提供好了现成的控件,我们至于要在项目中直接使用就行了。 效果图: SwipeRefreshLayout就是用于实现下拉刷新功能的核心类,它是由support-v4库提供的。我们把想要实现的下拉刷新功能的控件放置到

2017-05-29 22:31:00 313

原创 悬浮按钮和可交互提示

FloatingActionButton是Design Support库中提供的一个控件,可以比较轻松的实现悬浮按钮的效果。 1.修改activity_main.xml中的代码,如下:android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"

2017-05-29 20:40:58 1181

原创 滑动菜单DrawerLayout

滑动菜单DrawerLayout是Material Design中最常见的效果之一,借助谷歌提供的各种工具,可以很轻松的实现非常炫酷的菜单效果,上一篇Toolbar的基础上添加滑动菜单,效果如下:1.先将库引入到项目中,打开app/build.gradle文件,在dependencies闭包中添加如下内容: compile ‘com.android.support:design:25.3.1’

2017-05-27 21:44:31 404

原创 Toolbar

Material Design 设计风格Material Design 是由谷歌的设计工程师基于传统的优秀设计原则,结合丰富的创意和科学技术所发明的一套全新的界面设计语言,包含了视觉、运动、互动效果等特性。ToolbarToolbar 的强大之处在于,它不仅继承了 ActionBar 的所有功能,而且灵活性很高,可以配合其他控件来完成一些Material Design 的设计效果,因此官方已经不再建

2017-05-27 10:58:57 241

用于windows下向虚拟机中传文件

用于windows下向虚拟机中传文件,用于windows下向虚拟机中传文件

2018-06-02

空空如也

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

TA关注的人

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