![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 90
ty6693
这个作者很懒,什么都没留下…
展开
-
String类中 + 的奥秘
首先需要知道的是什么是字符串常量和字符串变量:字符串常量:如”abc”字符串变量:如String str1=”abc”或者 String str2=new String(“abc”)两种实例化方式,其中String str1=”abc”采用的是直接赋值的方式String str2=new String(“abc”) 采用的是构造方法的方式由于在JVM底层实际上会自...原创 2019-08-25 19:58:26 · 286 阅读 · 0 评论 -
Java 异常处理机制
一、产生原因代码运行过程中可能会出现异常,为了保证程序在出现异常后能够正确执行完毕,就需要进行异常处理。二、异常的继承结构Throwable是所有异常的父类其有两个子类:Error和Exception而对于Exception类来说,它又有两个子类:RuntimeException和IOException继承类结构:...原创 2019-08-25 19:50:03 · 181 阅读 · 0 评论 -
对集合类的理解与总结
首先集合类的产生是由于数组存储元素时是定长的,为了解决数组定长问题,Java提供了动态对象数组,用来存储数据。其次集合类中有两个核心的接口:Collection接口和Map接口 Collection接口主要是对单个对象进行保存处理,而Map接口主要是对一对对象进行保存处理对于Collection接口来说,该接口有List子接口和Set子接口。List接口允许数据重复,而Set接口不...原创 2019-08-24 17:40:13 · 256 阅读 · 0 评论 -
如何证明synchronized内建锁的可重入性和互斥性
在证明synchronized内建锁的可重入性和互斥性之前,我们需要了解一下synchronized如何实现线程同步问题,详情可参见https://blog.csdn.net/ty6693/article/details/89307414这篇文章。一、证明锁的可重入性锁的可重入性:同一个线程再次获得锁时可以获取成功而其他线程获取锁会阻塞(同一个线程重复获取同一把锁)分析:要证明锁的...原创 2019-07-01 12:44:31 · 296 阅读 · 0 评论 -
如何使用synchronized关键字处理线程同步问题?【购票问题】
一、问题引入多个线程实现买票功能:public class MyTickRunnable implements Runnable {//MyTickRunnable实现了Runnable接口 private int tick = 10;//总共剩余10张票 @Override public void run() {//MyTickRunnable覆写了R...原创 2019-04-15 14:12:29 · 837 阅读 · 0 评论 -
Java中创建线程的3种方式及区别
进程:进行中的程序,执行中的程序。在使用电脑时,我们通常会打开多个应用程序,如浏览器,网易云音乐等,而这些打开着的应用程序就称之为进程。线程:一个进程可以同时执行多个任务,如一个视频播放器可以同时缓存多集电视剧(VIP用户),一个浏览器可以同时下载多张图片等,通常我们将这一个个任务称为线程。Java中Thread类是线程操作的核心类。而通过下图我们可以发现Thread类其实是Runnabl...原创 2019-04-13 20:25:17 · 1766 阅读 · 1 评论 -
选择排序&堆排序【Java实现】
一、选择排序基本思想:通过不断的比较数组中待排序部分第一个元素与后面所有元素的大小,找出无序部分的最大值和最小值,并将最大值放在无序部分的最末,最小值放在无序部分的最前面。进而缩小无序部分的长度,直到所有元素都排好序。如给一个数组{9,4,3,2,1,5,7}。第一次无序部分为整个数组,存放最大值和最小值的地方分别为数组最后一个元素的位置和数组第一个元素的位置,第一个元素既是最大值又是最小...原创 2018-10-29 15:43:29 · 200 阅读 · 0 评论 -
冒泡排序&快速排序(前后指针、挖坑、左右指针法)【Java实现】
一、冒泡排序思想:对N个元素进行升序排列时,依次比较两个相邻的元素,如果前者大于后者就交换,一趟排序找出一个最大值并放在最后,然后缩小排序区间继续找出该区间的最大值,并放在倒数第二个位置,倒数第一个位置...,直到区间缩小至只剩一个元素,排序完成。整个排序过程要进行N-1趟排序。原理:1.比较相邻的元素。如果前者比后者大,就交换他们两个。2.对每一对相邻元素做同样的工作,从开始...原创 2018-11-02 21:14:20 · 670 阅读 · 0 评论 -
ArrayList、Vector和LinkedList的区别及使用场景
一、前言ArrayList、Vector和LinkedList都是实现了List接口(允许数据重复)的容器类,它们都能对元素做增删改查的操作。二、具体介绍ArrayListArrayList是基于数组实现的,采用懒加载策略(第一次add时才初始化内部数组,默认初始化大小为10)。它允许对元素的快速随机访问以及在链表尾部进行插入或删除元素操作。但是当随机插入元素时,如果此时数组大小已经...原创 2019-03-15 14:44:12 · 6497 阅读 · 0 评论 -
Java中常见的设计模式总结
一、单例设计模式单例设计模式:一个类只允许产生一个实例化对象。思路:首先,其它类可以实例化某个类的前提是该类的构造方法对它们可见,也就是说这个类的构造方法是public属性。而现在为了让其它类不能够实例化这个类,我们就需要将这个类的构造方法私有化。其次,由于其它类已经不能通过调用这个类的构造方法来实例化对象了,而它们又想要使用这个类的对象,我们肯定得在这个类中设置一个方法来返回...原创 2019-03-04 11:06:49 · 618 阅读 · 0 评论