自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (4)
  • 收藏
  • 关注

原创 冒泡排序以及冒泡排序的升级版

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,

2020-09-11 12:45:05 422

原创 快速排序——Java

大致思路:选中一个基准值,将小于基准值的数字移到左边数组,大于基准值的数字移到右边数组,得到两个数组,进行递归操作,对两个无序子数组进行上述排序;public class Sort { public static void main(String[] args) { int [] arr = {5,2,4,9,7,6}; List<Integer> list = Ints.asList(arr); System.out.println(

2020-08-28 16:10:40 132

原创 JAVA 中三目运算符空指针

开发过程中遇到一个问题,顺手记录一下。场景如下:public class PriceVO { private Double originalPrice; private Double preferentialPrice; public Double getOriginalPrice() {return originalPrice;} public void setOriginalPrice(Double originalPrice) {this.originalPric

2020-08-28 15:12:09 844

原创 深入理解Java内存模型——final(读书随手记)

与前面的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对final域,编译器和处理器要遵守两个重排序规则:

2019-09-03 14:53:02 98

原创 深入理解Java内存模型——volatile

volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步。示例代码:class VolatileFeaturesExample{ volatile long vl = 0L; //使用volatile声明64位的long型变量...

2019-08-27 16:40:09 157

原创 深入理解Java内存模型——顺序一致性(随手读书笔记)

数据竞争与顺序一致性保证当程序未正确同步时,就可能会出现数据竞争。Java内存模型规范对数据竞争定义如下:在一个线程中写一个变量在另一个线程中读一个变量而且写和读没有通过同步来排序当代码中含有数据竞争时,程序运行结果往往和预想中的不太一样。如果多线程程序进行了正确的同步,会避免数据竞争。JMM对进行正确同步的多线程程序的内存一致性做了如下保证:如果多线程进行了正确同步时,程序的...

2019-08-26 23:30:45 133

原创 1+2+3+4+5+......+n的和(牛客网剑指offer)

题目描述:求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。public class Solution { public int Sum_Solution(int n) { int sum = n; boolean a = (sum > 0) &&amp...

2019-08-23 11:35:31 974

原创 深入理解Java内存模型——重排序(读书随手记)

数据依赖性如果两个操作访问同一个变量,切其中一个操作为写操作,此时这两个操作之间就存在数据依赖性。数据依赖性可分为以下三种:上面的三种情况,只要出现重排序,程序的执行结果就会被改变。编译器和处理器会遵守数据依赖性原,不会改变两个有数据依赖关系的两个数的操作顺序。注意,这里所指的数据依赖性仅针对于单个处理器执行的指令序列和单个线程中执行的操作,不同处理器之间和不同线程之间的数据依赖不被编译器...

2019-08-22 22:24:16 95

原创 Java内存模型——基础(随手读书笔记)

- 并发编程模型的分类线程通信线程通信是指线程之间以何种机制来交换信息。在命令式编程中,线程通信机制有两种:共享内存与消息传递 共享内存:线程之间通过 写-读 内存中的公共状态来隐式的进行通信。 消息传递:线程之间没有公共状态,必须通过明确的发送消息来显式的进行通信。线程同步同步是程序用于控制不同的线程之间操作发生相对顺序的机制。 共享内存并发模型里,同步是显式进行的,程...

2019-08-22 17:18:01 82

转载 Java中null关键字

一、null是代表不确定的对象Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。比如:int a = null;是错误的。Ojbect o = null是正确的。Java中,变量的适用都遵循一个原则,先定义,并且初始化后,才可以使用。我们不能int a后,不给a指定值,就去打印a的值。这条对对于引用类型变...

2019-04-02 19:47:01 464

转载 Java类

在Java类中,只可以定义变量、初始化变量,不能对变量作逻辑运算。如果做逻辑运算,需要在代码块和静态代码块中执行。选项中哪一行代码可以添加 到题目中而不产生编译错误? 答案选A(题目摘自牛客网) 1 2 3 4 5 6 public abstract class MyClass { public in...

2019-04-02 19:35:58 109

矩阵相乘问题的动态规划

矩阵相乘问题的动态规划,动态规划是解决多阶段决策过程最优化问题的一种方法,其思想是将求解的问题一层一层地分解成一级一级的子问题,子问题的求解由繁到简逐步缩小,直到可以直接解出子问题为止。下面用动态规划的方法解决矩阵联乘的最小乘法问题。由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个二维数组中。

2019-01-04

数据结构农夫过河报告书

数据结构大作业,农夫过河文档,文档中包含源码,用c语言实现

2019-01-04

网页设计大作业

用html,css制作的一个网站,包含框架,表格,滤镜和层等样式。

2017-12-25

jsp+javabean的bbs系统

用jsp+javabean写的一个比较简单的bbs系统,可登陆注册留言回复。

2017-12-25

空空如也

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

TA关注的人

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