
Java基础
java重要或者比较难以记住的知识
Jaymeng8848
攀爬每一个巨人,站在他们肩膀上看一看
展开
-
Java中float、double、long类型变量赋值添加f、d、L尾缀问题
转自:https://blog.youkuaiyun.com/FX677588/article/details/52663805添加尾缀说明 我们知道Java在变量赋值的时候,其中float、double、long数据类型变量,需要在赋值直接量后面分别添加f或F、d或D、l或L尾缀来说明。 其中,long类型最好以大写L来添加尾缀,因为小写l容易和数字1混淆。 例如:long lNum = 1234L;float fNum = 1.23f;double dNum = 1.23d;这是Jav转载 2020-09-23 12:44:11 · 1541 阅读 · 0 评论 -
java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配
Java中的变量根据不同的标准可以分为两类,以其引用的数据类型的不同来划分可分为“原始数据类型变量和引用数据类型变量”,以其作用范围的不同来区分可分为“局部变量,实例变量和静态变量”。根据“Java中的变量与数据类型”中的介绍,“变量是在内存中分配的保留区域的名称。换句话说,它是一个内存位置的名称”,也就是说我们通过这个变量名字就可以找到一个指向这个变量所引用的数据的内存指针,根据变量的类型我们可以知道这个指针之后的几个字节里存储了这个变量所引用的数据。所以,了解变量在方法区、栈内存、堆内存中的分配要了转载 2020-09-23 10:17:12 · 756 阅读 · 0 评论 -
内部类
摘自牛客网网友答案1.为什么使用内部类?使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响1.1.使用内部类最大的优点就在于它能够非常好的解决多重继承的问题,使用内部类还能够为我们带来如下特性:(1)、内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独。(2)、在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。(3)、创建内部类对象的时刻并不依赖于转载 2020-09-09 16:55:28 · 97 阅读 · 0 评论 -
闭包
定义了解一个事物,最直接方式是看其定义。给一个事物下定义是一件非常困难的事情。下面看一下闭包在编程语言中的定义。在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,指定义在函数内部引用了函数内部变量的函数。首先来看一个例子,如下:public class SingleCalculator { int x; int addWith(int y){ return x + y; } public static voi原创 2020-09-02 19:43:21 · 154 阅读 · 0 评论 -
JAVA中Date类的使用
一、 Date类Date类对象的创建:1、创建一个当前时间的Date对象//创建一个代表系统当前日期的Date对象Date d = new Date();2、创建一个我们指定的时间的Date对象:使用带参数的构造方法Date(int year, int month, int day) ,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。//创建一个代表2014年6月12号的Date对象Date d1 = new D转载 2020-08-01 10:56:50 · 736 阅读 · 0 评论 -
匿名内部类写法
偶然见到一种初始化方式,感到十分新奇://新建一个列表并赋初值A、B、CArrayList<String> list = new ArrayList<String>() {{ add("A"); add("B"); add("C");}};还有其他集合比如HashMap的初始化:Map map = new HashMap() {{ put("Name", "Unmi"); put("QQ", "1125535"); }};这种方式转载 2020-07-29 08:04:38 · 5739 阅读 · 0 评论 -
String对象
一、String类介绍:String是一个引用数据类型默认为null;String 为final类型不可更改,不能被继承;基本类型与String结合都会转换为String类型;二、String两种赋值方式:1)直接赋值:String str = " ";String str = “” 原理:在 JVM(虚拟机)中有一个字符串池,专门用来存储字符串。如果遇到 String a=”hello”时(注意没有 NEW,不是创建新串),系统在字符串池中寻找是否有 ”hello”,此时字符串池中没有”h转载 2020-07-28 16:48:47 · 172 阅读 · 0 评论 -
equals和==
equals与==的区别== :== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,如:int a=10 与 long b=10L 与 double c=10.0都是相同的(为true),因为他们都指向地址为10的堆。equ转载 2020-07-28 15:48:35 · 130 阅读 · 0 评论 -
面向对象的特征
1、抽象忽略一个主题中与当前目标无关的东西,专注的注意与当前目标有关的方面。(就是把现实世界中的某一类东西,提取出来,用程序代码表示,抽象出来的一般叫做类或者接口)。抽象并不打算了解全部问题,而是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一个数据抽象,而是过程抽象。数据抽象 -->表示世界中一类事物的特征,就是对象的属性。比如鸟有翅膀,羽毛等(类的属性)过程抽象 -->表示世界中一类事物的行为,就是对象的行为。比如鸟会飞,会叫(类的方法)2、封装封装是面向对象的特征之一,是原创 2020-07-28 15:26:32 · 106 阅读 · 0 评论 -
Java基础异常
前言:Java异常,大家都很熟悉。但是对于具体怎么分类的,JVM对其怎么处理的,代码中怎么处理的,应该怎么使用,底层怎么实现的等等,可能就会有些不是那么清晰。本文基于此详细捋一下异常类型,实现以及使用时应怎么注意。一、异常实现及分类1.先看下异常类的结构图上图可以简单展示一下异常类实现结构图,当然上图不是所有的异常,用户自己也可以自定义异常实现。上图已经足够帮我们解释和理解异常实现了:1.所有的异常都是从Throwable继承而来的,是所有异常的共同祖先。2.Throwable有两个子类,Er转载 2020-07-24 08:51:35 · 112 阅读 · 0 评论 -
HashCode
怎样理解hashCode的作用:以 java.lang.Object来理解,JVM每new一个Object,它都会将这个Object丢到一个Hash哈希表中去,这样的话,下次做 Object的比較或者取这个对象的时候,它会依据对象的hashcode再从Hash表中取这个对象。这样做的目的是提高取对象的效率。详细过程是这 样:1.new Object(),JVM依据这个对象的Hashcode值,放入到相应的Hash表相应的Key上,假设不同的对象确产生了同样的hash值,也就是发 生了Hash key同样转载 2020-07-22 20:32:59 · 384 阅读 · 0 评论 -
java类的包装类
为什么需要包装类(Wrapper Class) java并不是纯面向对象的语言,java语言是一个面向对象的语言,但是java中的基本数据类型却不是面向对象的,但是我们在实际使用中经常将基本数据类型转换成对象,便于操作,比如,集合的操作中,这时,我们就需要将基本类型数据转化成对象!包装类和基本数据类型的关系基本数据类型 &nb原创 2020-07-22 20:22:16 · 220 阅读 · 0 评论 -
java中运算符
在读ArrayList源码时,关于Capacity扩容遇到了运算符>>所以在此复习一下JAVA中他位运算符:其中> 表示大于,如:if(a>b)…结果是boolean类型其中>>表示带符号右移,如:int i=15; i>>2的结果是3,移出的部分将被抛弃。转为二进制的形式可能更好理解,0000 1111(15)右移2位的结果是0000 0011(3),0001 1010(18)右移3位的结果是0000 0011(3)。其中>>>无原创 2020-07-21 11:59:04 · 189 阅读 · 0 评论 -
反射机制
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-688b67d66a.css"> <div id="content_views" class="markdown_views p...转载 2020-04-10 18:24:36 · 218 阅读 · 0 评论 -
【Java重要关键字】java中的访问修饰符
主要讲述一下java中protected的修饰控制范围。 在叙述protected修饰符使用之前,先来说一下java,可以发现,开发java程序是一个时时刻刻都在编写类、开发类、定义类的过程。类里面可以有main方法。(main方法不管存在那个类中,都要通过打点的方式调用某个类的成员)在当前类的定义中,main方法之外,可以直接通过成员的名字来使用本类中的成员变量,不管这个成员是什么访问修饰符修饰的,也不用通过对象打点调用的方式进行,当前类的main方法中,可以通过对象打点的方式调用。所以说访问控制修转载 2020-07-15 11:38:36 · 253 阅读 · 0 评论 -
【Java重要关键字】transient关键字
transient关键字默认情况下,对象所有的变量都会转变成持久状态。但是有时候,一些变量可能不需要序列化,因为没必要对这些变量进行序列化。这时,你就可以将这些变量申明为 transient。如果一个变量被申明为 transient,那么这个变量就不会被序列化。public class NameStore implements Serializable { private String firstName; private transient String middleName;转载 2020-07-15 11:23:29 · 110 阅读 · 0 评论 -
【Java重要关键字】abstract关键字
abstract关键字抽象方法:1、从上面的例子中我们可以看到抽象方法跟普通方法是有区别的,它没有自己的主体(没有{}包起来的业务逻辑),跟接口中的方法有点类似。所以我们没法直接调用抽象方法2、抽象方法不能用private修饰,因为抽象方法必须被子类实现(覆写),而private权限对于子类来说是不能访问的,所以就会产生矛盾3、抽象方法也不能用static修饰,试想一下,如果用static修饰了,那么我们可以直接通过类名调用,而抽象方法压根就没有主体,没有任何业务逻辑,这样就毫无意义了。抽象原创 2020-07-15 11:07:27 · 152 阅读 · 0 评论 -
【Java重要关键字】this关键字
this关键字this关键字指向的是当前对象的引用this.属性名称指的是访问类中的成员变量,用来区分成员变量和局部变量(重名问题)this.方法名称用来访问本类的成员方法this(); 访问本类的构造方法, ()中可以有参数的 如果有参数 就是调用指定的有参构造注意事项:1.this() 不能使用在普通方法中 只能写在构造方法中2.必须是构造方法中的第一条语句注:所以super和this都是只能在构造器中使用,都要占构造函数第一排,就不能同时使用。其次还有一点值得注意原创 2020-07-15 10:45:08 · 115 阅读 · 0 评论 -
【java重要关键字】开篇
学习java的人都知道java关键字都重要:可是有时候使用少了或者对于初学者都有所忘记或者不清楚,所以我就以此专栏来记录和总结一些java重要关键字来进行学习进步相较于其他关键字,我会重点记录一下几个重要的关键字用法以此复习:final | static| super| this | abstract...原创 2020-07-15 10:43:13 · 102 阅读 · 0 评论 -
【Java重要关键字】super关键字
super关键字的基本用法1、概念它是一个指代变量,用于在子类中指代父类对象。super的三种使用情况:访问父类的方法。调用父类构造方法。访问父类中的public和protected成员变量。访问方法和成员变量比较简单;super在构造函数中其实是有两种情况第一种:直接调用super()会执行父类的无参构造方法,可以默认不写。第二种:使用super(参数1,…),调用父类有参构造方法,把参数传递进来就好。注意:1.子类中需要定义一个构造方法去匹配父类构造方法2.对于子类来说,不管是原创 2020-07-15 10:38:02 · 142 阅读 · 0 评论 -
【Java重要关键字】static关键字
static关键字的基本用法1、static关键字基本概念我们可以一句话来概括:方便在没有创建对象的情况下来进行调用。2、static关键字修饰类java里面static一般用来修饰成员变量或函数。但有一种特殊用法是用static修饰内部类,普通类是不允许声明为静态的,只有内部类才可以>。如果没有用static修饰InterClass,则只能new 一个外部类实例。再通过外部实例创建内部类。3、static关键字修饰方法修饰方法的时候,其实跟类一样,可以直接通过类名来进行调用4、sta原创 2020-07-15 10:36:22 · 132 阅读 · 0 评论 -
【Java重要关键字】final关键字
一、final关键字的功能概述final关键字可以用来修饰引用、方法和类。1、用来修饰一个引用如果引用为基本数据类型,则该引用为常量,该值无法修改;如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。如果引用时类的成员变量,则必须当场赋值,否则编译会报错。2.用来修饰一个方法当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。3.用来修饰类当用final修改类时,该类成为最终类,无法被继承。原创 2020-07-15 10:34:57 · 89 阅读 · 0 评论