
Java基础
回味不彷徨
雷军
展开
-
Java 值传递与引用传递
https://blog.youkuaiyun.com/u010469514/article/details/80838678按照前面的例子,String应该是一个封装类型,它应该是引用传递,是可以改变值得, 运行的结果应该是”cd”。我们实际运行一下看看,str=ab,这如何解释呢?难道String是基本类型?也说不通呀。这就要从java底层的机制讲起了,java的内存模型分为堆和栈。...原创 2020-08-03 22:16:47 · 169 阅读 · 0 评论 -
Java接口与抽象类
https://www.cnblogs.com/happystudyhuan/p/10699021.html原创 2019-12-25 21:32:54 · 125 阅读 · 0 评论 -
github入门到上传本地项目
GitHub是基于git实现的代码托管。git是目前最好用的版本控制系统了,非常受欢迎,比之svn更好。GitHub可以免费使用,并且快速稳定。即使是付费帐户,每个月不超过10美刀的费用也非常便宜。利用GitHub,你可以将项目存档,与其他人分享交流,并让其他开发者帮助你一起完成这个项目。优点在于,他支持多人共同完成一个项目,因此你们可以在同一页面对话交流。创建自己的项目,并备份,...转载 2019-11-29 23:36:17 · 185 阅读 · 0 评论 -
Java 引用传值和值传递
原文链接:https://blog.youkuaiyun.com/u010469514/article/details/80838678写的很好,搬过来学习一下,谢谢。这一篇也不错https://blog.youkuaiyun.com/sdbzwangdongdong/article/details/36884833按照前面的例子,String应该是一个封装类型,它应该是引用传递,是可以改变值得, 运行的结果应该...转载 2019-11-12 19:14:06 · 135 阅读 · 0 评论 -
类的初始化过程 (代码执行的先后顺序)
类的初始化过程也就是方法执行的过程父类的静态变量-父类的静态代码块 子类的静态变量-子类的静态代码块 父类的非静态变量-父类的非静态代码块-父类的构造函数 子类的非静态变量-子类的非静态代码块-子类的构造函数规律就是 父类先于子类 静态的先于非静态的 变量先于代码块父类静态域——》子类静态域——》父类成员初始化——》父类构造块——》1父类构造方法——》2子类成员初始化——》...原创 2019-08-26 19:49:30 · 304 阅读 · 0 评论 -
正则表达式匹配 B 站网址
以下哪一项正则能正确的匹配网址:http://www.bilibili.com/video/av21061574()正确答案: BA /^(https?:\/\/)?([a-zA-Z\d]+).bilibili.com\/?video\/av(\D{1,8})\/?$/B /^(http:\/\/)?(\w+)\.bilibili\.com\/?video\/av(\d...原创 2019-08-27 13:10:57 · 1503 阅读 · 0 评论 -
线程
wait() 是Object 类的方法 ,释放锁 。sleep() 是 Thread 类的方法 ,不释放锁。死锁产生的4个必要条件 1、互斥:某种资源一次只允许一个进程访问,即该资源一旦分配给某个进程,其他进程就不能再访问,直到该进程访问结束。 2、占有且等待:一个进程本身占有资源(一种或多种),同时还有资源未得到满足,正在等待其他进程释放该资源。 3、不可抢占:别...原创 2019-08-28 11:25:32 · 110 阅读 · 0 评论 -
类加载过程
类加载过程类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中准备、验证、解析3个部分统称为连接(Linking)。如图所示。加载、验证、准备、初始化和卸...原创 2019-09-02 09:54:52 · 105 阅读 · 0 评论 -
Volatile 锁
Volatile:与锁相比,Volatile 变量是一种非常简单但同时又非常脆弱的同步机制,它在某些情况下将提供优于锁的性能和伸缩性。如果严格遵循 volatile 的使用条件 —— 即变量真正独立于其他变量和自己以前的值 —— 在某些情况下可以使用volatile代替synchronized来简化代码。然而,使用volatile的代码往往比使用锁的代码更加容易出错。 您只能在...原创 2019-09-02 10:02:46 · 539 阅读 · 0 评论 -
线程是否安全的集合对象
链接:https://www.nowcoder.com/questionTerminal/3dbb60125c2b47918b03ecb112b9c2cb来源:牛客网线程安全(Thread-safe)的集合对象:Vector 线程安全: HashTable 线程安全: StringBuffer 线程安全:非线程安全的集合对象:ArrayList : LinkedList:...原创 2019-09-02 10:14:50 · 158 阅读 · 0 评论 -
静态变量
静态变量,被类拥有,所有对象都共享这个静态变量。静态变量为类变量,只有在类加载的时候才进行初始化。同一个类中静态变量和静态方法,可以通过实例对象调用,也可以直接用类名调用。静态变量分配在方法区,一个类的所有对象指向同一个方法区。...原创 2019-08-26 19:40:08 · 105 阅读 · 0 评论 -
抽象类和接口
简单的做个关于抽象类和接口的总结吧:区别1:抽象类体现继承关系,一个类只能単继承。接口体现实现关系,一个类可以多实现。区别2:抽象类中可以定义非抽象方法和抽象方法,子类继承后可以直接使用非抽象方法。接口的方法都 是抽象的,必须由子类去实现。接口中的成员都有固定的修饰符。区别3:抽象类有构造方法,用于给子类对象初始化。而接口没有构造方法。特点1:抽象类不可以实例...转载 2019-08-26 19:21:58 · 223 阅读 · 0 评论 -
引用数据类型和null
Java数据域中的默认值:引用类型的数据域默认是null (String)数值类型数据域的默认值是0 (int,double)boolean类型数据域的默认值是false char类型数据域的默认值是'\u0000'。但是Java没有给方法中的局部变量赋默认值。...原创 2019-05-14 15:29:56 · 862 阅读 · 0 评论 -
可见性修饰符
私有的修饰符将访问权限限定在他自己的类中。(private)默认修饰符将访问权限限定在它所在的包内。(不写)公共修饰符可以无限制的访问。(public)...原创 2019-05-14 17:36:43 · 153 阅读 · 0 评论 -
对象和类
对象和类,静态成员变量package javajichu.ch9;public class TestP297_d { public static void main(String[] args) { Faa f1 = new Faa(); System.out.println(f1.i+ " "+ f1.j); Faa f2 = new Faa(); System....原创 2019-05-14 21:30:36 · 109 阅读 · 0 评论 -
不可变对象和类
要使一个类成为一个不可变类,他必须满足如下条件的要求:所有数据域都是私有的。没有修改器方法。没有一个返回指向 可变数据域的引用的访问器方法。如果一个类是不可变的,那它的所有数据域都是私有的, 而且没有一个数据域提供公共的set方法。但是一个类的所有数据都是私有的且没有修改器并不意味着它一定是不可变类。例如:public class Student{ private java.u...原创 2019-05-14 22:26:50 · 519 阅读 · 0 评论 -
String 空指针异常(关于this不用this的对比)
public class TestStringNullPointerException { private String text; public TestStringNullPointerException(String s) { String text = s; // this.text = s;//如果改为这样的话输出的结果将完全不一样 } public static v...原创 2019-05-15 11:43:07 · 494 阅读 · 0 评论 -
重写equals方法传参类型为Object
重写equals方法时,注意传参类型为Objectpublic class Testequals { public static void main(String[] args) { Object circle1 = new Circle(); Object circle2 = new Circle(); System.out.println(circle1.equals(c...原创 2019-05-16 10:24:25 · 548 阅读 · 0 评论 -
抽象类和最终类(被final修饰的类)、接口的区别
首先讨论抽象类和最终类的区别:1.抽象类可以被继承,并且穿件抽象类就是为了被继承,但是最终类只能实例化;2.抽象类和最终类都可以被声明使用。3.抽象类可以没有抽象方法,最终类中可以没有最终方法。4.最终类不能被继承,最终方法不能被重写,但是可以被继承。5.抽象类是不能实例化的,实例化必将加载类,然后根本不知道抽象方法的方法体大小,所以不能实例化。然后是抽象类和接口的区别:类中只要含有...转载 2019-05-16 11:43:19 · 2425 阅读 · 0 评论 -
Java 集合
HaspMap基于Hash 算法实现的,其性能通常优于 TreeMap。TreeMap 中添加元素的顺序和实际存储的顺序可能不同。添加时 TreeMap 自动便利已经u内在的元素,根据 key 寻找合适的插入位置,将要添加的元素插入到已经有序的元素序列中。通常字符串按照字典顺序排列,数值按照数字大小排列。因此,要求添加到 TreeMap 的 key 必须是有序的。...原创 2019-06-22 10:23:21 · 85 阅读 · 0 评论 -
String, StringBuffer,StringBuilder的区别
String, StringBuffer,StringBuilder的区别 java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。 1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是...原创 2019-08-26 19:19:48 · 94 阅读 · 0 评论 -
面向对象:instanceof 关键字
面向对象高级:instanceof 关键字,用来判断左边对象是否是右边类的实例。class A{ // 定义类A public void fun1(){ // 定义fun1()方法 System.out.println("A --> public void fun1(){}") ; } public void fun2(){ this.fun1() ; //...原创 2019-03-15 16:47:25 · 146 阅读 · 0 评论