自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Java虚拟机-GC垃圾回收

一、为什么要进行垃圾回收因为没有足够的内存一直进行内存分配,对垃圾的回收是必须的。二、那些垃圾需要回收肯定是一些已经没有用的对象。这就产生了一个问题,如何去找到这些没有用的对象呢?引用计数法:引用计数算法听起来就很好理解,无非就是通过给对象添加引用计数器,当这个对象被引用时计数器加1,当引用失效时计数器减1,直到当计数器为0时就可以把这个对象进行回收,但是java虚拟机却没有应用这种方...

2019-07-23 19:01:48 88

原创 java虚拟机-内存模型

一、什么是Java内存模型java虚拟机规范中定义一种Java内存模型试图来屏蔽各种操作系统和硬件访问之间的差异,JKD1.5之后,Java内存模型已经逐渐完善起来。二、主内存和工作内存1、 Java内存模型中主要定义了程序中各个变量间的访问规则,即在虚拟机中将变量储存到内存和从内存中取出变量的底层细节。此处的变量主要是实例变量,静态字段已经数组元素,因为局部变量和方法参数是线程所私有的,不...

2019-07-23 16:04:51 89

原创 通过synchronized关键字解决赋值取值时出现的脏读情况

在学习多线程的时候看到脏读这个概念,同过翻看书籍了解到一些基本小知识,虽然在赋值的时候进行了同步处理,可在取值的时候可能会出现值被更改的情况,也就是所谓的脏读。解释起来可能不太明白,直接看代码:package mythread;public class Login { private String username; private String password; ...

2019-04-02 11:29:40 368 1

原创 多线程的 join()方法简单应用

通过join方法可以使线程按照一定顺序执行。作用:join()方法的作用是等待线程对象销毁。join()方法具有能使线程排队运行的作用,有点类似于同步的效果。join()除了无参方法之外,还重载了join(毫秒)的方法,此方法与sleep(毫秒)的区别是:(1)、 join()操作底层用wait()来实现,可以释放锁。( 2)、 sleep()不会释放锁。join与synchroni...

2019-03-30 15:05:31 182 1

原创 多线程-创建线程的三种方式

创建线程的三种方式:1、实现Runnable接口通过实现Runnable接口创建并启动线程一般步骤如下:(1)、定义Runnable接口的实现类,一样要重写run()方法,这个run()方法和Thread中的run()方法一样是线程的执行体(2)、创建Runnable实现类的实例,并用这个实例作为Thread的target来创建Thread对象,这个Thread对象才是真正的线程对象(3...

2019-03-30 14:42:19 106

转载 leetcode求两个有序数组的中位数

有两个大小为 m 和 n 的排序数组 nums1 和 nums2 。请找出两个排序数组的中位数并且总的运行时间复杂度为 O(log (m+n)) 。示例 1:这是问题,我刚开始刷leetCode还没多久,刚开始做这个题的时候,觉得真的挺难得。他的难点主要就是时间复杂度的问题。然后做了两三个小时实在做不出来我就找了看了官方给的解释,因为英语是个半吊子,理解起来蛮吃力的。查博客的话,大多只是写...

2019-03-28 20:55:35 139 1

原创 java-IO-回退流

回退流在JAVA IO中所有的数据都是采用顺序的读取方式,即对于一个输入流来讲都是采用从头到尾的顺序读取的,如果在输入流中某个不需要的内容被读取进来,我们就要采取办法把不需要的数据处理掉,为了解决这样的处理问题,在JAVA中提供了一种回退输入流(PushbackInputStream、PushbackReader),可以把读取进来的某些数据重新回退到输入流的缓冲区之中。回退流主要给我们提供了三...

2019-03-27 20:58:27 211

原创 java集合-LinkedList

LinkedList的学习从一下四点总结(1)LinkedList的继承关系public class LinkedList<E> extends AbstractSequentialList<E> implements List<E&

2019-03-04 21:00:52 74

原创 HashSet与HashMap的区别

HashSet与HashMap的区别先了解一下HashMap跟HashSetHashSet:  HashSet实现了Set接口,它不允许集合中出现重复元素。当我们提到HashSet时,第一件事就是在将对象存储在HashSet之前,要确保重写hashCode()方法和equals()方法,这样才能比较对象的值是否相等,确保集合中没有储存相同的对象。如果不重写上述两个方法,那么将使用下面方法...

2019-03-04 14:27:59 83

原创 Java集合框架-ArrayList

1,ArrayList介绍ArrayList简介1,ArrayList是一个数组队列,相当于动态数组可以实现动态扩容。它继承了 AbstractList,实现List, RandomAccess, Cloneable, java.io.Serializable四个接口。2,ArrayList继承了AbstractList实现List接口,他是一个数组,提供了相应的增删改查遍历等功能。3...

2019-02-27 15:34:19 147

原创 对Java抽象类和接口的

对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为: abstract void fun();抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用...

2018-11-04 16:10:44 107

原创 类和对象

一,面向对象的概述面向对象的程序设计具有三个基本特征:(1)封装,(2)继承,(3)多态; 可以大大提高程序的可靠性,代码的可重用性和程序的可维护性,从而提高程序的开发效率。1,封装封装就是把客观事物抽象并封装成对象,即将数据成员,属性,方法等集合在一个整体内。对象的初始化(1)提供一些get set 方法。class Person{ private int age;} publi...

2018-10-30 16:16:57 73

原创 Java数组

//1、实现二分查找算法:有序的数组import java.util.Arrays;public class arrayTest { public static int binary ( int[] array, int key ) { Arrays.sort(array); int low=0; int hi...

2018-10-17 11:27:40 71

原创 java程序语句执行

1,斐波那契数列的前40项求和public class Add {public static void main(String[] args) { int z; //声明整型变量 int sum=0; //声明变量并赋初值 for (int i=1,x=1,y=1;i<=40;i++,x=y,y=z){ //给定程序停止条件,i<=40 ...

2018-10-14 11:44:57 893 1

原创 java基础

1,java标识符的写法public class HelloWorld{ public static void main(String[] args){ int a=10 ;//数字,字母,下划线,美元符号 //int 123abc = 6; // 标识符不能以数字开头 //Int $a =1000 ; //不能用$字开头 //java关键字不能作为标识符} 2,java数据...

2018-10-11 23:27:19 123 1

空空如也

空空如也

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

TA关注的人

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