java基础
也想洒脱
这个作者很懒,什么都没留下…
展开
-
(面试)java基础-== 和 equals 的区别?
== 是比较栈帧中局部变量表的值,如果变量是基本数据类型,则栈内存中存放的就是具体数值,如果是引用类型,则栈中存放的是引用的内存地址。所以对于基本数据类型,== 是比较值是否相等,对于引用数据类型,比较的是引用的内存地址是否相等。equals 是 Object 类中的一个方法,其本质就是在用 == 进行判断。作为Object 的子类String重写了equals方法:首先判断引用地址是否相同,不同则判断值是否相同类似的还有File类也重写了此方法...原创 2021-10-09 11:09:30 · 59 阅读 · 0 评论 -
java设计模式-模板模式
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。实例代码:package com.zgy.ThreadAllDemo.CreateThreadDemo.day13.java1;/** * @Author Rabindranath Tagore [email protected] * @Date 2021/8/31 15:56 */public class TemplateMethodTest { publi原创 2021-08-31 16:05:25 · 48 阅读 · 0 评论 -
java基础-单例模式的懒汉模式和饿汉模式
饿汉式class Taekea{ private Taekea(){ System.out.println("创建了Taekea对象"); } private static Taekea instance = new Taekea(); public static Taekea getInstance() { return instance; }}懒汉式class Bank{ private static vola原创 2021-08-30 20:28:17 · 182 阅读 · 0 评论 -
java基础-static
1.static静态的(存在方法区的静态域):2.static可以用来修饰:属性,方法,代码块,内部类3.使用static修饰属性:静态变量,类变量 1.静态属性 vs 非静态属性(实例变量) 实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性,当修改其中一个对象中的 非静态属性时,不会导致其它对象中同样的属性值的修改。 2.我们创建了类的多个对象,多个对象共享同一个静态属性,当修改其中一个对象中的静原创 2021-08-30 20:25:58 · 64 阅读 · 0 评论 -
Java基础-集合:set
1.无序性:不等于随机性。存储的数据在数组中并非按照数组索引的顺序添加,根据数据的哈希值添加*2.不可重复性:保证添加的元素按照equals()判断时,不能返回true,即:相同的元素只能添加一次二。添加元素过程:以hashSet为例: 向HashSet中添加元素时,首先调用元素a的hashcode方法,计算其哈希值, 此哈希值对底层数组长度进行取模求其存放的位置,判断此位置是否有元素: 如果没有其它元素,则元素a添加成功 如果有其它元素(有可能是单个.原创 2021-08-23 23:02:22 · 82 阅读 · 0 评论 -
java基础-集合:list
List接口:存储有序,可重复的数据|—ArrayList:主要实现类,线程不安全,效率高,底层使用Object[] elementData存储|—LinkedList:底层使用双向链表存储,频繁插入,删除效率比ArrayList高|—Vector:古老实现类,线程安全ArrayList源码分析:查询效率高 jdk7: public ArrayList();调用无参创建新的对象底层创建一个长度为10的Object[]数组elementData public b原创 2021-08-23 23:01:14 · 43 阅读 · 0 评论 -
java基础——重写与重载
重载:方法名一样,参数列表的个数,类型,顺序不一样,早期绑定,编译期间就确定方法引用的地址重写:方法名一样,参数列表的个数,类型,顺序一样,晚期绑定,运行期间才确定方法引用的地址...原创 2021-08-22 23:04:19 · 58 阅读 · 0 评论 -
java基础-值传递
二。值传递机制 如果参数是基本数据类型,此时实参赋给形参的是实参的真实存储的数据值(栈是线程私有的,每个方法在自己的栈帧中声明一个局部变量,每个方法内部修改属性值对其它方法不可见,方法调用结束即栈帧出栈,其内部的局部变量也就失效了) 如果参数是引用数据类型,此时实参赋给形参的是实参的地址值,指向堆空间中同一个对象(堆空间是线程共享的,一个引用修改里面的属性值,其它引用可见)...原创 2021-08-20 21:09:18 · 35 阅读 · 0 评论 -
java基础-方法重载
**方法重载:**同一个类方法名相同,参数列表个数或参数不同即可口诀:“两同一不同”:同一个类,相同方法名参数列表不同:参数个数不同,参数类型不同,参数顺序不同**注意:**判断是否重载跟方法的修饰符,返回值类型,形参变量名,方法体都没关系!!!...原创 2021-08-20 20:14:25 · 42 阅读 · 0 评论 -
String,StringBuffer,StringBuilder三者的异同
String,StringBuffer,StringBuilder三者的异同:?String:不可变的字符序列;底层使用char[]存储(用final修饰)StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储(不用final修饰)StringBuilder:可变的字符序列;jdk5.0新增的,非线程安全的,效率高;底层使用char[]存储(不用final修饰)源码分析:* String str = new String(); //new cha原创 2021-08-20 15:58:37 · 82 阅读 · 0 评论 -
(面试)java基础-String一些特性
String:字符串,使用一对“”引用表示1.String声明为final,不可被继承2.String内部定义了final char[] value用于存储字符数据3.String:代表了不可变的字符序列。简称:不可变性 体现:a.当堆字符串重新赋值时,需要重写指定区域赋值,不能使用原有的value进行赋值 b.对现有的字符串进行连接操作(有变量参与)时操作时,需要重新指定内存区域赋值,不能使用原有的value进行赋值 c.当调用String的replace方.原创 2021-08-19 21:00:48 · 41 阅读 · 0 评论 -
java多线程-sleep()和wait()对比
相同点:一旦执行都使当前线程陷入阻塞状态不同: sleep()是Thread的方法,wait()是Object的方法 sleep()可以在任何需要的场景下使用,wait()必须在同步代码块或同步方法中使用 如果两个方法都在同步代码块或同步方法中使用,sleep不释放对象锁,wait释放锁...原创 2021-08-17 19:49:55 · 49 阅读 · 0 评论 -
java多线程-死锁的一些问题
**死锁:**不同的线程相互占用对方的资源不放弃并等待对方放弃自己需要的资源,形成了僵局,从而陷入阻塞状态必要条件如果在一个系统中以下四个条件同时成立,那么就能引起死锁:互斥:至少有一个资源必须处于非共享模式,即一次只有一个进程可使用。如果另一进程申请该资源,那么申请进程应等到该资源释放为止占有并等待:—个进程应占有至少一个资源,并等待另一个资源,而该资源为其他进程所占有。非抢占:资源不能被抢占,即资源只能被进程在完成任务后自愿释放。循环等待:在发生死锁时,必然存在一个进程–资源的环形链。原创 2021-08-17 16:03:41 · 48 阅读 · 0 评论 -
javase-线程生命周期
原创 2021-08-17 10:47:38 · 44 阅读 · 0 评论 -
java基础学习(5)-continue与break
continue:1.在循环结构中使用,2.默认结束最近的当前循环,3.如果指定标识符就跳出标识符的那层循环结构,4.关键字后面不能声明语句break:1.在循环结构中使用,2.默认结束最近的当次循环,3.如果指定标识符就跳出标识符的那层循环结构,4.关键字后面不能声明语句代码实例如下:public class BreakContinueTest { public static void main(String[] args) { outer:for (int原创 2021-08-15 11:46:54 · 42 阅读 · 0 评论 -
java基础学习(4)-switch支持数据类型
基本数据类型:int,byte,short,char基本数据类型封装类:Integer,Byte,Short,Character枚举类型:Enum(JDK 5+开始支持)字符串类型:String(JDK 7+ 开始支持)原创 2021-08-15 10:32:22 · 52 阅读 · 0 评论 -
Java基础学习三:循环结构的使用
一.循环结构四要素:1.初始化条件2.循环条件3.循环体4.迭代条件for循环的结构for(1;3;4) { 3}执行顺序:1,2,3,4原创 2021-08-15 10:24:34 · 59 阅读 · 0 评论 -
java基础学习(2)-java基本数据类型
原创 2021-08-13 21:46:42 · 39 阅读 · 0 评论 -
java基础学习(1)-jre与jdk
1.jre:java runtime environment (java运行时环境)的缩写,它包含jvm和java的核心类库2.jdk:Java Development Kitava开发工具包,它包括jre和java开发工具(javac.exe,java.exe,javadoc.exe等)以我自己安装的java8为例jre文件夹中jdk的文件夹下可以看到包括了jre他们之间的关系如下...原创 2021-08-13 20:43:06 · 955 阅读 · 0 评论