自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程的生命周期及状态转换详解

(1)新建状态——(2)就绪状态—((4)阻塞状态)—(3)运行状态——(5)死亡状态1)New:创建线程对象后,该线程处于新建状态,此时它不能运行,和其他Java对象一样,仅仅有Java虚拟机为其分配了内存,没有表现出任何线程的动态特征;(2)Runnable:线程对象调用了start()方法后,该线程就进入了就绪状态(也称可运行状态)。处于就绪状态的线程位于可运行池中,此时它只是具备了运行的条件,能否获得CPU的使用权开始运行,还需要等待系统的调度;(3)Runing:处于就绪状..

2020-08-04 21:44:16 228

原创 简述什么是线程安全问题,为什么会出现?怎么解决

线程安全问题:在操作系统中,进程之间的数据是隔离的。但是注意:如果是一个进程里面多个线程,线程之间是共享一个进程的在Java中,如果使用多个Thread线程启动同一个Runable的线程对象,此时这些线程会共享Runable对象中的属性,就容易出现线程安全问题(非线程安全问题)。什么是线程安全的?如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序

2020-08-04 21:23:58 412

原创 Java中volatile的作用

volatile让变量每次在使用的时候,都从主存中取。而不是从各个线程的“工作内存”。作用分为两大类: 1 内存可见性 2、禁止指令重排序volatile具有synchronized关键字的“可见性”,但是没有synchronized关键字的“并发正确性”,也就是说不保证线程执行的有序性。也就是说,volatile变量对于每次使用,线程都能得到当前volatile变量的最新值。但是volatile变量并不保证并发的正确性。在Java内存模型中,有ma...

2020-08-04 20:56:24 490

原创 Synchronized和Lock的区别

Synchronized和Lock的区别并发编程中,锁是经常需要使用的。在开发中我们常用的锁有两种Synchronized和Lock。线程安全问题线程安全是在多线程编程中,有可能会出现同时访问同一个 共享、可变资源 的情况,始终都不会导致数据破坏以及其他不该出现的结果。这种资源可以是一个变量、一个对象、一个文件等。共享:多个线程可以同时访问该共享变量。可变:数据在生命周期中可以被改变。锁的概念JAVA 内置锁隐性锁:每个JAVA对象可以用作实现同步的内置锁,线程在访问同步代

2020-08-04 20:45:31 121

原创 HashMap、HashTable以及ConCurrentHashMap异同比较

HashMap实现了Map接口,实现了将唯一键隐射到特定值上。允许一个NULL键和多个NULL值。非线程安全。HashTable类似于HashMap,但是不允许NULL键和NULL值,比HashMap慢,因为它是同步的。HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张表让线程独占。ConcurrentHashMapConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控

2020-07-28 22:29:57 194

原创 HashSet,TreeSet和LinkedHashSet三者的异同之处

总体而言:如果你需要一个访问快速的Set,你应该使用HashSet;当你需要一个排序的Set,你应该使用TreeSet;当你需要记录下插入时的顺序时,你应该使用LinedHashSet。Set接口: 1.Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false。 2.Set判断两个对象相同不是使用==运算符,而是根据equals方法。也就是说,只要两个对象用equals方法比较返回true,Set就不会接受这两个对象。 ...

2020-07-27 21:03:33 563

原创 Vector,ArrayList和LinkedList三者的异同之处

相同点:Vector、ArrayList和LinkedList都是List的接口的实现类,所以它们三个都有List集合身上的特点List是有序的,元素可重复的集合。请注意这里的有序指的是元素存入集合的顺序和取出的顺序一致。ArrayList和Vector都是基于动态的Object数组,他们两个的底层实现其实是类似的。不同点:1.ArrayList和Vector,两个其中ArrayList是非线程安全的而Vector是线程安全的,但是ArrayList的效率比Vector快的多,并且我们一般常用的都Arr

2020-07-27 20:52:17 174

原创 Javaweb作业

1.抽象类为什么不能创建对象?抽象类和接口都能创建对象,只是后边的new不能是new他们自己,但可以new他们的实现类(必须是类,不能是抽象类和接口),人们使用抽象类和接口只是为了说明要干什么事,而让他们的实现类去根据自己的需要去实现这些方法,比如说抽象类定义一个eat()方法,它并没有说这个方法具体怎么做,羊就可以吃草,虎就可以吃肉,羊和虎都实现了这个吃的方法。一个类继承抽象类。用抽象类的子类实例化抽象类的引用。例如A是抽象类BextendsA,并且B实现了A中所有的抽象方法,...

2020-07-13 22:40:57 590 1

原创 数据库语句查询练习(一)

现在有一教学管理系统,具体的关系模式如下:Student (no, name, sex, birthday, class)Teacher (no, name, sex, birthday, prof, depart)Course (cno, cname, tno)Score (no, cno, degree)其中表中包含如下数据:Course表:Score表:Student表:Teacher表:根据上面描述完成下面问题:(注意:注...

2020-07-07 17:30:04 1317

原创 牛客网专项练习总结

答案:A 分析:==:比较两个引用的地址和值equals:比较两个引用的值1、s1==s2 true s1和s2指向字符串常量池中同一个地址2、s3 和 s4 都显示使用了new,是不同的对象, 当然不相等3、s1 和 s3 的值都是 "uml",当然相等2.设int x=1,float y=2,则表...

2020-03-18 17:04:50 455

原创 对象与类(二)

1.8 static关键字成员变量+static=静态变量当我们在设计类的时候 发现多个对象中有共享数据的时候 我们就可以把这个共享的数据 定义为静态的像name age虽然每个对象都有 ,但是值不一定一样 对象的特有数据->成员变量像country虽然每个对象也都有 ,但是值一样 对象的共有数据-> 静态变量上述可以知道 共有...

2020-03-17 15:25:49 175

原创 牛客网专项练习总结(三)

1.下面哪项是数组优于链表的特点?A.方便删除 B.方便插入C.长度可变 D.存储空间小答案:D 分析:1: 数组内存空间少比链表少2:数组支持随机访问,链表不具有随机访问的特性3:插入和删除是链表优于数组,数组需要移动被删除或者插入...

2020-03-13 16:30:44 361

原创 对象与类(一)

1.1 面向过程与面向对象它们都是解决问题的思路 大致的方向面向过程:执行者 凡事都要自己做 亲力亲为弊端:费时间 费精力 做出来的结果也不一定是最优的面向对象:指挥者 凡事都要找别人面向过程和面向对象一定是互斥的吗?肯定不是我们在处理问题时可以完全的面向过程 但是不能完全面向对象 解决一个事最终要被处理-面向过程所以 面向过程其实是最基本的思路 而面向对象是...

2020-03-10 17:52:27 112

原创 牛客网专项练习总结(二)

1.对任何数据结构链式存储结构一定优于顺序存储结构()A 对 B错 选B 分析:顺序表优点:查找和修改(首先要查找到)效率高,空间占用比链表小,时间复杂度 O(1) 缺点:插入和删除元素时,后面的元素都需要进行移动,编译时确定大小,时间复杂度 O(n)链表优点:插入和删除元素比较方便,...

2020-02-25 16:13:30 993

原创 力扣网编程题总结(一)

分析:根据题意加一,没错就是加一这很重要,因为它是只加一的所以有可能的情况就只有两种: 除 999 之外的数字加一; 数字 999。加一得十进一位个位数为 000 加法运算如不出现进位就运算结束了且进位只会是一。所以只需要判断有没有进位并模拟出它的进位方式,如十位数加 111 个位数置为 000,如此循环直到判断没有再进位就退出循环返回结果。然后还有一些特殊...

2020-02-23 18:56:34 820

原创 牛客网专项练习总结(一)

1.二分查找要求元素 ( );二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。2.假设以行序为主序存储二维数组A=array[100][100],设每个数据元素占2个存储单元,基地址A[0][0]为10,则A[5,5]的地址为()。选A 分析:根据公式 基地址+(n(i-1)+...

2020-02-21 20:24:25 3580

原创 数组习题(2)

让我们来看下面的几道题:分析:我们假设下面一个三行四列数组,对它进行分析; (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) 累加行的时候 行不动 列动 累加列的时候 列不动 ...

2020-02-20 17:38:26 160

原创 数组习题(1)

下面是关于数组的一些题↓↓↓↓↓↓分析:注意输入以0结束。先创建一个数组长度为0的新数组,将新数组进行扩容,在依次将用户输入的数据传入新数组中,每传进一个数,数组就要进行一次扩容,将数据全部读取到新数组中之后,再将数组进行排序,排序完毕之后再依次遍历数组判断数据的个数​import java.util.*;class Demo05_01{ publi...

2020-02-18 18:42:31 255

原创 数组

5.1 数组的定义 之前在定义数据的时候,大部分都是用变量来存储数据,如果我们的程序中出现大量的数据怎么办?连续输入多个数字,连续输入多个坐标点,一般而言会创建多个变量存储这些数据,显得比较麻烦。这些变量基本上类型是共通的,那我们就可以用一个容器将所有的数字进行管理。 类似于字符串,字符串其实就是若干个字符的容器而已,“abc”可以通过索引/角标来获取其中某一个字...

2020-02-14 21:32:04 247

原创 第四章习题

下面我们来看一下函数这些题;↓↓↓↓↓↓↓这道题就是把数字拆分了,然后求和;import java.util.Scanner;class Demo04_01{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); System.out...

2020-02-14 17:59:52 199

原创 数学函数,字符和字符串

4.1 函数的定义1.函数存在的意义:函数主要解决的是那些重复的且具有独立功能的代码段;将这些具有独立功能的代码可以进行再次封装 封装出来的东西就成为是函数;很明先的优势,降低了代码冗余复用函数即可,降低了主函数的代码量,将主函数进行适当的拆分,以便内存优化。2. 函数的格式:函数格式:访问权限 函数类型 返回值类型 函数名(参数列表){ 函数体...

2020-02-14 12:57:44 367

原创 第三章习题(2)

下面是第三章后面的题:3.11题:分析一下:输入一个数字再判断数字是否为0如果为0则退出不是则继续下面是代码:import java.util.Scanner;class Demo03_11{ public static void main(String[] args){ Scanner scanner=new Scanner(Syst...

2020-02-11 17:49:52 363

原创 第三章习题(1)

第三章的题有点多,我挑一些重要的写。下面我们来分析一下这道题:数据:a b c delt r1 r2步骤:1.提示用户输入abc三个参数2.计算delt=b*b-4*a*c3.判断delt的值 3.1 delt>0 输出两个解 3.2 delt==0 输出一个解 3.3 delt<0 无实数解...

2020-02-11 16:56:33 742

原创 流程控制语句

3.1 顺序结构什么是程序的流程呢?即就是代码的执行顺序class Demo { public static void main(String[] args) { int a = 3 ; int b = 5 ; int sum ; sum = a + b; System.out.println("su...

2020-02-08 23:54:31 473

原创 基本数据与运算

2.1 关键字一些被Java语言赋予了特殊含义的单词,不能随意使用2.2 标识符1.就是我们程序员在写代码的过程中自定义的一些名称2.变量名,类名,函数名,接口名...3.主函数的main其实也是标识符 ,只不过是被写死了①标识符的组成规则:1.由字母、数字、下划线_、美元$组成的,2.其中数字不能开头,严格区分大小写的,3.不要使用关键字和Java中的自带类...

2020-02-08 16:36:27 284

原创 第二章习题总结

下面我们来看一下几道简单的java编程题2.1题.下面我们来分析一下这道题!数据:摄氏温度 华氏温度 指令:输入 按照公式计算 输出 步骤: 1.提示用户输入摄氏温度 2.利用已知公式将摄氏温度转换为华氏温度 3.将摄氏温度和华氏温度输出以下是运行的代码:import java.util.Scanner;class ...

2020-02-08 13:11:24 206

原创 计算机基础

1.对计算机的描述1.1 计算机是存储和处理数据的电子设备。计算机包括硬件( hardware ) 和软件( software) 两部分。一般来说,硬件包括计算机中可以看得见的物理部分,而软件提供看不见的指令,这些指令控制硬件并且使得硬件完成特定的任务。一台计算机是由以下几个主要的硬件组件构成。中央处理器(CPU)和图形图像处理器GPU内存(主存)存储设备(例如,磁盘.光盘.U盘和光...

2020-02-05 17:18:06 102

空空如也

空空如也

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

TA关注的人

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