自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 java并发(二)CAS操作

在java中,使用锁线程会被阻塞,而且阻塞的时候线程切换上下文会有很大的开销。而volatile也只能解决共享变量中可见性的问题。不能解决原子问题。CAS通过硬件保证了原子性,而且是非阻塞的。下面以一个方法简单介绍public final native boolean compareAndSwapInt(Object o, long offset, ...

2019-07-31 20:12:52 1552

原创 java8(二)Lambda 使用局部变量为什么要显示声明为final 或者 事实上分final

int i=1;Runnable r=()->System.out.println(i);先来说下什么是事实上的final。 如果我声明了一个变量,且在后面不更改它的值,那么那就是事实上的final。我改下代码int i=1;Runnable r=()->System.out.println(i);i=2;如果i是局部变量,那么会编译出错。为什么我们知...

2019-07-31 16:14:00 5183 1

原创 java8(一)Lambda 使用例子(四步走)

第一步行为参数化一般我们传参数是传值、引用。但这里我们要传行为。举例子: if(XXXXX) 通过参数把判断的行为传进XXXXX 就是行为参数化,我们可以传(i>19)等条件第二步使用函数式接口来传递行为这里我直接使用jdk中的接口 */package java.util.function;import java.util.Objects;/** * ...

2019-07-30 16:59:44 1785

原创 public static <T> List<T> full(List<T> list, Predicate<T> p) 第一个T是什么意思?

第一个是用来声明类型参数的,后面的两个才是泛型的实现。也就是告诉大家 <T>这是一种类型

2019-07-30 16:42:13 2256

原创 java虚拟机(六)局部变量表

局部变量表示一组变量值储存空间,用于存放方法参数和方法内部定义的局部变量。其最小单位为solt。一个slot可以存放一个boolean,byte,char,short,int,float,reference,returnAddress,的数据类型。但虚拟机规范确有没有明确规定一个solt占有的空间大小。此外 long,double占用两个solt。因为连续占用两个solt,却不用担心数据安...

2019-07-29 11:32:11 2011

原创 java并发(一)线程中断 interrupt()

首先我们要明白线程中断并不能终止该线程的执行,被中断的线程根据自己的中断状态自己处理。举个例子。你正在学习,妈妈大声跟你说来吃饭了(此时就调用了interrupt())方法。这时候你知道了,哦,可以吃饭了。但是我还是想写完这道题目再去吃饭。当你写完这道题目。调用 isInterrupted()方法 后,返回true。 原来有人告诉我已经可以吃饭了。好的。停止学习(中断线程)去吃饭。好了...

2019-07-27 15:12:56 1628

原创 java虚拟机(五)类加载的过程

类从加载到虚拟机开始到出去内存。有这么几个阶段加载验证准备解析初始化使用卸载这几个过程 并不是有这绝对的先后顺序。某些可能会混合式进行。加载,其实虚拟机并没有规定什么时候要加载,但对于初始化是有这么几种情况必须要初始化。1.使用new实例化对象、读取或设置一个类的静态字段。但是如果被final 修饰的就不用,因为 final的静态字段 在编译时就已经放...

2019-07-26 17:09:18 1523

原创 java虚拟机(四)双亲委派模型

双亲委派模型是在实现在类加载器之间的。一般有三种类加载器 启动类加载器 扩展类加载器 应用程序加载器。 在没有自己定义的类加载器出现 我们的应用程序是由这三种类加载器相互配合的。从名字可以看出 启动类加载器是最顶层的 应用程序是底层的那么该模型的工作过程就是,如果一个类加载器收到了类加载的请求,他不会自己去尝试加载这个类,而是把请求传递给父类,父类再传递 。 如果最...

2019-07-26 16:27:06 1564

原创 PageInfo返回的total不正确,和list的size一样

直接上代码List<Cyinfor> cyinfors = cyinforService.getAll(); List<ForeCyinfor> list=cyinforService.foreFull(cyinfors); int total = (int) new PageInfo<>(list).getTotal()...

2019-07-19 21:39:57 4743

原创 关于同步、异步与阻塞、非阻塞的理解

看了好多文章,终于理解了。同步与异步关注的是消息通信机制,是机制,注意。在发出一个调用时,没有得到返回结果,那就不返回。 一旦返回,就得到返回值了。这就是同步。同步需要时不时去轮询,看看返回没。异步就是,发出一个调用,不用管它有没有返回结果。 有返回结果它会通知你的。阻塞与非阻塞他们关心的是等待结果的状态。是线程状态。 如果线程不会被挂起,那就是非阻塞,反之就...

2019-07-16 16:00:58 1578

原创 HTTP是无状态协议,为什么网页就只用登录一次?

HTTP是一种不保存状态的,即无状态的协议。也就是说,HTTP协议不具有保存之前发送过的请求或者响应的功能。在使用HTTP协议的时候,每当有新的请求就会有对应的新响应产生。这样就会产生一种问题了,例如:访问正方系统的时候,由于HTTP协议是不保存状态的,也就是说在第一个页面登陆了之后,再点到另外的页面(由网上选课这个页面然后点到课表这个页面)的时候,是需要重新登陆一遍的,这样显然是很不合理的。而且...

2019-07-13 19:48:10 2093

原创 小程序支付统一下单的坑(需要两次生成sign) java后端

最大的坑,小程序需要两次生成sign。先来看下流程第二个坑,第一次的appid 中 i是小写的 ,第二次要大写I 又一个坑!看下代码 我会在代码的注释详细说明引用import com.github.wxpay.sdk.WXPay;import com.github.wxpay.sdk.WXPayConstants;import com.github.wxpay.sd...

2019-07-12 17:13:26 4400 3

原创 什么是resultful 以及为什么要使用它

resultful风格是一种软件架构风格,而不是标准,只是提供了一种设计原则和约束条件。主要适用于客户端和服务器端交互的软件。是基于http协议实现。目的是为了提高系统的可伸缩性,降低应用之间的耦合度,方便框架分布式处理程序。基于这个风格的软件可更加的简单、更有层次,更易于实现缓存的机制。GET,对应select:是从服务器查询,可以在服务器通过请求的参数区分查询的方式。POST,对应C...

2019-07-09 22:27:18 6815

简单的SpringMVC小项目(适合刚刚学的)

实现注册和登录的springmvc小项目。

2019-02-27

空空如也

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

TA关注的人

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