![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
三十六度五
这个作者很懒,什么都没留下…
展开
-
Java多线程产生死锁的4个必要条件?如何避免死锁?
一般造成死锁必须同时满足以下4个条件:1. 互斥条件:线程使用的资源必须至少有一个是不能共享的。2. 请求与保持条件:指的是进程至少有一个资源,但又提出了新的资源请求,而该资源已被其它线程占有,此时请求进程阻塞,但又对自己获得的其它资源保持不释放。3. 不剥夺条件:指的是进程已获得资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。4. 循环等待条件:第一个线程等待其他的线程释放资源。后者又在等待第一个线程释放资源。因为要产生死锁,这4个条件必须同时满足。因此要防止死锁的话,只需要破坏其中原创 2020-12-21 09:43:10 · 1253 阅读 · 0 评论 -
Javaweb各层命名规范
原创 2020-09-22 10:02:12 · 361 阅读 · 0 评论 -
java中dao层和service层的区别是什么?
首先解释面上意思,service是业务bai层,dudao是数据访问层。呵呵,这个问题我曾经也有过,记zhi得以前刚dao学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道,业务才是工作中的重中之重。我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码,不会影响我其他层代码,如转载 2020-09-22 09:57:43 · 144 阅读 · 0 评论 -
Java静态代码块与非静态代码块
静态代码块,格式是 static{ },随着类的加载而加载,且只执行一次。 在程序中,执行的优先级最高。非静态代码块,格式是{ },在创建对象的时候运行(即new一个对象的时候),每创建一次对象就执行一次。package demoTest;public class Order { public static void main(String[] args) { Order order1 = new Order(); { System.转载 2020-09-08 20:38:10 · 80 阅读 · 0 评论 -
反射机制与面向对象中的封装性是不是矛盾的?如何看待两个技术?
两种技术乍一看上去有点矛盾的封装性告诉我们私有的 别的地方不能用,而反射呢告诉我们可以用私有的 这样看不就白封装了吗两者之间不矛盾对于封装性我们 设计一个类的时候 属性 方法 构造器等等 该私有的时候私有(private) 该 公共的时候公共(public)封装性给我们的启示是:当我们看到一个类写了一些私有的方法,一些公共的方法时 就告诉我们私有的方法就不要用了就用公共的方法就可以了 因为私有的方法可能类内部用了 这里体现了封装性。比如单例模式 你要想造对象 就不要用私有的构造器了 我已经把对原创 2020-07-31 17:06:28 · 1180 阅读 · 0 评论 -
Java语言高级---线程的同步机制
先简单说下线程的同步:假如现在有5个线程,同步就是,现在只有一个线程在工作,其它4个线程在等待,等它执行完,再进来一个线程。线程的异步:多个线程可以一起执行,线程之间也可以通信。...转载 2020-07-30 17:46:45 · 79 阅读 · 0 评论 -
java语言高级------线程的生命周期
1.生命周期关注两个概念:状态、相应的方法2.关注:状态a—>状态b: 哪些方法执行了(回调方法)某个方法主动调用:状态a–>状态b测试Thread中的常用方法:1.start():启动当前线程;调用当前线程的run()2.run():通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中3.currentThread():静态方法,返回执行当前代码的线程4.getName():获取当前线程的名字5.setName():设置当前线程的名字6.yield.原创 2020-07-30 17:19:20 · 84 阅读 · 0 评论 -
java语言高级---线程复习题
面试题:sleep()和wait()的异同1.相同点:一旦成功执行这两种方法,都可以使当前线程进入阻塞状态2.不同点:(1):声明的位置不同。sleep()声明在Thread类中,wait()声明在Object类中(2):使用范围的不同。sleep()可以在任何需要的场景调用,wait()必须在同步方法或同步代码块中被调用(3):关于是否释放同步监视器。如果两个方法都在同步代码块或同步方法中被调用,sleep()不会自动释放同步监视器,wait()自动释放同步监视器。也就是说,sleep()执.原创 2020-07-30 12:32:15 · 95 阅读 · 0 评论 -
java语言高级-----多线程-----谈谈对同步监视器和共享数据的理解
对同步监视器和共享数据的理解:一、同步监视器:1.首先任意一个类的对象都可以充当同步监视器2.多个线程使用同步的话,得保证所用的同步监视器一样3.synchronized(同步监视器){//操作共享数据的代码(不能多,也不能少)}4.同步方法中的同步监视器是谁?是默认的,但我们要了解到底是谁。(1)静态同步方法:是this(2)非静态方法:是当前类本身(就是 类名.class)二、共享数据多个线程共同操作的数据 叫 共享数据。...原创 2020-07-30 12:15:38 · 439 阅读 · 3 评论 -
类创建对象的过程
简单说一下:.java源文件被javac(java源码编译器)编译成.class(字节码)文件,然后由类加载器加载到JVM中,然后JVM就可以根据字节码文件里面的内容创建所需要的的对象。类的加载机制原创 2020-10-09 10:08:49 · 520 阅读 · 0 评论 -
java----重载
重载:方法名相同,参数列表不同注意:所谓参数列表不同,指的是参数类型不同,个数不同,顺序不同。(唯独没有参数名字不同,参数名不同叫语法错误不是重载)原创 2020-10-06 17:14:10 · 104 阅读 · 0 评论 -
int 和 Integer区分
https://blog.csdn.net/qq_41386332/article/details/98442633转载 2020-06-19 11:55:45 · 89 阅读 · 0 评论 -
java基础学习---------IO流
1 File API的使用原创 2020-05-17 11:40:35 · 168 阅读 · 0 评论 -
java基础学习-------容器(五)终结篇
容器总结Collection 表示一组对象,它是集中、收集的意思,就是把一些数据收集起来。Collection接口的两个子接口:List中的元素有顺序,可重复。常用的实现类有ArrayList、LinkedList和 vector。 Ø ArrayList特点:查询效率高,增删效率低,线程不安全。 Ø LinkedList特点:查询效率低,增删效率高,线程不安全。 Ø vector特点:线程安全,效率低,其它特征类似于ArrayList。Set中的元素没有顺序,不可重复。常原创 2020-05-14 00:20:15 · 89 阅读 · 0 评论 -
java基础学习-------容器(四)
4.4 TreeMap的使用和底层实现package com.gk.collection;import java.util.Map;import java.util.TreeMap;/** * 测试TreeMap的使用 * @author 康哥 * */public class TestTreeMap { public static void main(String[] args) { Map<Integer,String> treemap1 = new TreeM原创 2020-05-12 00:16:38 · 79 阅读 · 0 评论 -
java基础学习-------容器(三)
4 Map接口现实生活中,我们经常需要成对存储某些信息。比如,我们使用的微信,一个手机号只能对应一个微信账户。这就是一种成对存储的关系。 Map就是用来存储“键(key)-值(value) 对”的。 Map类中存储的“键值对”通过键来标识,所以“键对象”不能重复。 Map 接口的实现类有HashMap、TreeMap、HashTable、Properties等。练习:package com.gk.collection;import java.util.HashMap;import原创 2020-05-10 00:23:26 · 119 阅读 · 0 评论 -
java基础学习-------容器(二)
3.3 LinkedList特点和底层实现inkedList底层用双向链表实现的存储。特点:查询效率低,增删效率高,线程不安全。双向链表也叫双链表,是链表的一种,它的每个数据节点中都有两个指针,分别指向前一个节点和后一个节点。 所以,从双向链表中的任意一个节点开始,都可以很方便地找到所有节点。每个节点都应该有3部分内容:class Node { Node previous; ...原创 2020-05-06 17:16:42 · 81 阅读 · 0 评论 -
Java中的左移、右移详细分析
这里讲的很详细转载 2020-05-06 00:07:02 · 197 阅读 · 0 评论 -
java基础学习-------容器(一)
1、泛型Generics开发和学习中需要时刻和数据打交道,如何组织这些数据是我们编程中重要的内容。 我们一般通过“容器”来容纳和管理数据。那什么是“容器”呢?生活中的容器不难理解,是用来容纳物体的,如锅碗瓢盆、箱子和包等。程序中的“容器”也有类似的功能,就是用来容纳和管理数据。事实上,我们第七章所学的数组就是一种容器,可以在其中放置对象或基本类型数据。数组的优势:是一种简单的线性序列,可以...原创 2020-05-04 19:30:16 · 148 阅读 · 0 评论 -
java基础学习-------异常机制
1、异常的概念异常指程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等。在Java的异常处理机制中,引进了很多用来描述和处理异常的类,称为异常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法。所谓异常处理,就是指程序在出现问题时依然可以正确的执行完。我们开始看我们的第一个异常对象,并分析一下异常机制是如何工作的:public cla...原创 2020-05-04 00:29:00 · 156 阅读 · 0 评论 -
java基础学习---------常用类
1、包装类Java是面向对象的语言,但并不是“纯面向对象”的,因为我们经常用到的基本数据类型就不是对象。但是我们在实际应用中经常需要将基本数据转化成对象,以便于操作。比如:将基本数据类型存储到Object[]数组或集合中的操作等等。为了解决这个不足,Java在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。包装类...原创 2020-04-22 00:23:26 · 165 阅读 · 0 评论 -
java基础学习------数组
System类里也包含了一个static void arraycopy(object src,int srcpos,object dest, int destpos,int length)方法,该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素。废话不多说,直接上例子:...原创 2020-04-20 22:14:17 · 79 阅读 · 0 评论