![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 71
Jane_Doe
这个作者很懒,什么都没留下…
展开
-
JAVA - this关键字
this关键字概念:代表了所属函数的调用者对象。在写一个方法的时候,如果想在方法内部获得对当前对象的引用就可以用this关键字。this关键字表示对“调用方法的那个对象”的引用。也就是说this指的是方法所属的类的对象的引用。this关键字应用场景1. 如果存在同名成员变量与局部变量时,在方法内部默认是访问局部变量的数据(JAVA采取的是就近原则的机制访问),可以通过this关键字指定访问成员变量...转载 2018-06-14 12:55:57 · 182 阅读 · 0 评论 -
JAVA - 重载与重写
重载(overload)重载概念在一个类里,两个或者两个以上的同名方法,只要参数列表不同(不同的参数类型或者参数顺序或者参数个数),即可称之为该方法重载了。编译器必须挑选出具体执行哪个方法,它通过用各个方法给出的参数类型与特定方法调用所使用的值类型进行匹配来挑选出相应的方法。如果编译器找不到匹配的参数,或者找出多个可能的匹配,就会产生编译时错误(这个过程被称为重载解析(overloading re...转载 2018-06-21 22:24:24 · 252 阅读 · 0 评论 -
JAVA - final与static final
final的用法:* final关键字修饰基本类型变量final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的值为最终的,因此变量也必须在声明时或者在构造方法中被初始化(不会默认初始化,默认初始化的只有普通的非final属性,,否则出现编译错误。编译器在编译时期就对该数据进行替换甚至执行计算。public class Test{final int m = 0; final int...转载 2018-05-31 01:54:42 · 144 阅读 · 0 评论 -
JAVA - 值传递与不存在的引用传递
概念pass-by-value(按值传递):方法调用时,传递参数会在内存中开辟新的空间来存储参数,实际参数把它的值传递给对应的形式参数,函数接收的是原始值的一个copy,此时内存中存在两个相同的变量,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。离开函数体,不影响参数本身pass-by-reference(引用传递):引用传递,则方法接收的是调用者提供的实际参数...转载 2018-06-06 18:52:33 · 225 阅读 · 0 评论 -
JAVA - \r与\n的区别
基本概念 \r 是回车符(Carriage Return),即将光标移到当前行的的第一格\n 是换行符(Line Feed),即换到下一行区别* 所对应的ASCII码值、Unicode值不同符号 ASCII码 Unicode值\n 10 \u000a\r 13 ...转载 2018-05-30 02:42:17 · 467 阅读 · 0 评论 -
JAVA - 数组初始化
JAVA的数组变量是引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量。声明数组只是得到了一个数组的引用并为该引用分配了存储空间,但是并没有给数组对象本身分配任何空间。想要给数组对象分配存储空间,必须进行初始化* 默认初始化数组元素相当于对象的成员变量,默认值跟成员变量的规则一样int 0float ...转载 2018-06-05 19:28:14 · 269 阅读 · 0 评论 -
JAVA - 打印数组的方法
打印数组的方法* 传统的for循环方式int[] array = {1,2,3,4}; for(int i=0;i<array.length;i++){ System.out.println(array[i]);}* foreach循环for(int a: array)System.out.println(a);* 调用Array类中的toString方法,返回一个包含数组元...转载 2018-06-05 15:09:31 · 554 阅读 · 0 评论 -
JAVA - foreach
foreach是java5的新特性,增强了for循环,在遍历数组和集合上面很方便。foreach是for循环的简化版本,但是foreach不能完全取代for循环,然而任何foreach都可以改写为for循环,foreach不是一个关键字,主要就是这个格式,每一个for的意思。 foreach语句格式:for(元素类型type 元素变量value : 遍历对象obj) { 引用x的java...转载 2018-06-05 12:53:53 · 1381 阅读 · 0 评论 -
JAVA - 绝对路径&相对路径
Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是API在底层帮助我们构建了绝对路径,从而找到资源的。基本概念 绝对路径:从根目录为参考点的文件或文件夹(即目录)所在的路径,只存在一个,具有唯一性* 本地系统的绝对路径C:\xyz\test.txt 代表了test.txt文件的绝对路径* URI形式的绝对资源路径如,file:/D:/java/eclipse32/wo...转载 2018-05-29 14:33:53 · 2212 阅读 · 0 评论 -
JAVA - 构造器
构造器的声明修饰符 class_name(类名) (参数列表){ 逻辑代码 } 构造器的特性* JAVA采取了与类同名的方法命名构造器。* 构造器只有在对象被建时被调用,且只会调用一次* 在JAVA中,每个类至少有一个构造方法(接口不能被实例化,所以接口中没有构造方法)。如果类中没有提供任何构造方法,那么JAVA将自动提供一个隐含的默认无参构造方法。该构造方法没有参数,用pub...转载 2018-06-14 13:02:01 · 302 阅读 · 0 评论 -
JAVA - 封装
封装的概念封装(encapsulation)是与对象有关的一个重要概念。对象中的数据称为实例域(instance fields),对于每个特定的类实例(对象)都有一组特定的实例域值。实现封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。程序仅通过对象的方法与对象数据进行交互。封装给予对象了“黑盒”特征,这是提高重用性和可靠性的关键。一个类将类的某些信息隐藏在类的内部使得它可以全面地改变存...转载 2018-06-11 08:29:43 · 247 阅读 · 0 评论 -
JAVA - Arrays类
java.util.Arrays类的所有方法都是静态的JAVA中的Arrays类是一个实现对数组操作的工具类,包括了各种各样的静态方法,可以实现数组的排序和查找、数组的比较和对数组增加元素,数组的复制和将数组转换成字符串等功能,这些方法都有对所有基本类型的重载方法* 类加载import java.util.Arrays;* 填充数组给数组中所有元素附上相同值static void fill(typ...转载 2018-06-10 19:10:14 · 193 阅读 · 0 评论 -
JAVA - 判断数组相等
java.util.Arrays类的equals()方法* 类加载import java.util.Arrays;* 判断数组元素相等的方法static boolean equals(type[] a, type[] b): 如果两个数则大小相同并且下标相同的元素都对应相等,返回trueint[] ary = {1,2,3,4,5,6};int[] ary1 = {1,2,3,4,5,6};i...转载 2018-06-10 02:04:19 · 10566 阅读 · 0 评论 -
JAVA - 生成随机数
Java随机数产生原理JAVA中的随机数都是伪随机数。伪随机数是看似随机实质是固定的周期性序列,也就是有规则的随机。Java的随机数产生是通过线性同余公式产生的,也就是说通过一个复杂的算法生成的。只要这个随机数是由确定算法生成的,那就是伪随机,只能通过不断算法优化,使你的随机数更接近随机JAVA产生随机数的方法java.lang.Math类的Random()方法* Math.Random()函数能...转载 2018-06-09 23:57:23 · 2676 阅读 · 0 评论 -
JAVA - finalize方法
背景知识JAVA垃圾回收器原理在JAVA中,当你创建一个对象时,JVM为该对象分配内存、调用构造函数并开始跟踪你使用的对象。当你停止使用一个对象(就是说,当没有对该对象有效的引用时),JVM通过垃圾回收器将该对象标记为释放状态。当垃圾回收器将要释放一个对象的内存时,它调用该对象的finalize() 方法(如果该对象定义了此方法)。垃圾回收器以独立的低优先级的方式运行,只有当其他线程挂起等待该内存...转载 2018-06-23 20:06:30 · 226 阅读 · 0 评论 -
JAVA - 可变对象与不可变对象
不可变对象在并发程序中比较有用,由于其状态无法改变,因此无法被线程的干扰损坏或者被视为不一致状态。基本概念 *不可变对象(Immutable Objects)即对象一旦被创建它的状态(对象的数据,也即对象属性值)就不能改变,任何对它的改变都应该产生一个新的对象。* 可变对象(Mutable Objects):相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类...转载 2018-06-14 18:34:08 · 6573 阅读 · 0 评论 -
JAVA - 数组复制
以下数组复制方法均为对对象数组的浅拷贝!1 for循环逐一复制使用for循环,将数组的每个元素复制或者复制指定元素;代码灵活,但需注意数组越界异常;效率低int[] array1 = {1,2,3,4,5}; int[] array2 = new int[5]; for(int i = 0;i < array1.length;i++) { array2[i] = arr...转载 2018-06-07 18:25:30 · 4396 阅读 · 0 评论 -
JAVA - 浅拷贝与深拷贝
背景知识:拷贝JAVA中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去。举例说明:比如,对象A和对象B都属于类S,具有属性a和b。那么对对象A进行拷贝操作赋值给对象B就是:B.a=A.a; B.b=A.b;引用拷贝:指创建一个指向对象的引用变量的拷贝public static void copyReferenceObject(){...转载 2018-06-07 13:44:48 · 200 阅读 · 0 评论 -
JAVA - 类名、接口名、文件名
* 一个JAVA文件中至多有一个public类或接口(内部类除外,内部类作为外部类的内部成员,可以存在多个内部类是用public修饰的)* 如果文件中有public类,文件名必须与public类名或接口名一致* 如果文件中没有public类且不止一个类,文件名可与任一类名一致* 如果文件中没有public类且只有一个类,文件名必须与这个类的类名一致 注:* JAVA文件中,public类是可以被项...转载 2018-06-12 06:02:39 · 2159 阅读 · 0 评论 -
JAVA - 日期处理类
Date类Date类通过一个从UTC时间1970年1月1日 00:00:00到其代表的时间之间的毫秒数来表示时间。* 类加载import java.util.Date;* 构造Date类以系统当前的毫秒数创建当前时间对象public Date();根据给定的毫秒值创建日期对象public Date(long date);* 常用方法1通过getTime方法可以将一个日期类型转换为long类型的毫秒...转载 2018-06-11 23:28:12 · 167 阅读 · 0 评论 -
JAVA - final关键字
final关键字的用法: 1. final关键字修饰一个基本类型的变量时,该变量不能重新赋值,第一次的值为最终的,因此变量也必须在声明时同时被初始化。习惯说,变量名大写。 2. final关键字修饰一个引用类型变量时,该变量不能重新指向新的对象。 3. final关键字修饰一个函数的时候,该函数不能被重写。 4. final关键字修饰一个类的时候,该类不能被继承。常量的修饰...转载 2018-05-16 11:26:24 · 115 阅读 · 0 评论 -
JAVA - 基本数据类型的存储空间长度
1.整型类型 存储需求 bit数 取值范围 byte 1字节 1*8 -128~127short 2字节 2*8 -32768~32767int ...转载 2018-05-16 11:26:28 · 2704 阅读 · 0 评论 -
JAVA - JAVA大数处理BigInteger与BigDecimal
https://blog.csdn.net/hqd_acm/article/details/5751686转载 2018-06-03 22:08:23 · 1765 阅读 · 0 评论 -
JAVA - main()函数
public static void main(String[] args) :public : 公共的。 权限是最大,在任何情况下都可以访问。 原因: 为了保证让jvm在任何情况下都可以访问到main方法。static: 静态。静态可以让jvm调用main函数的时候更加的方便。不需要通过对象调用。void: 没有返回值。 因为返回的数据是给JVM,而JVM使用这个数据...转载 2018-05-16 11:26:41 · 2776 阅读 · 0 评论 -
JAVA - System.exit()方法
原型:System.exit(int status)其功能主要是调用Runtime.getRuntime().exit(status);作用是终止当前正在运行的Java虚拟机,这个status表示退出的状态码,非零表示异常终止。注意:不管status为何值程序都会退出,和return 相比有不同的是:return是回到上一层,而System.exit(status)是回到最上层。System.ex...转载 2018-05-16 11:26:45 · 14414 阅读 · 0 评论 -
JAVA - File类
在JAVA中,获取文件属性以及删除、重命名文件等工作由File类来完成。类加载import java.io.File;一个File类实例表示一个目录/文件,但是需要注意,创建一个file实例并不会在机器上创建一个文件,无论文件是否存在,都可以创建任意文件名的file实例,可以调用exists()方法来判断文件是否存在。File类包含许多获取文件属性、删除文件等方法,但是,File类不属于流对象,不...转载 2018-05-22 13:01:32 · 193 阅读 · 0 评论 -
JAVA - 控制台输入方法
方法1:Scanner类 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间的某种结合。由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分。于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法。这样,除了能使用正则表达式之外,Scanner类还可以任...转载 2018-05-20 22:15:36 · 1154 阅读 · 0 评论 -
JAVA - String、StringBuffer和StringBuilder
1.对象的可变与不可变 String类中使用字符数组来保存数据,因为有“final”修饰符,所以string对象是不可变的。如下: private final char value[]; StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字符数组保存数据,这两种对象都是可变的。如...转载 2018-05-19 02:22:02 · 91 阅读 · 0 评论 -
JAVA - String类常用方法
(1)字符串比较Booleanequals (String anotherString)将该字符串与另一个这字符串比较,如果相同,返回true,否则返回false。BooleanequalsIgnoreCase (String anotherString)字符串比较,同上方法,只是忽略字符的大小写。 (2)字符串追加Stringconcat(String str)在该字符串的末尾再添加字符串,类似...转载 2018-05-19 01:57:15 · 130 阅读 · 0 评论 -
JAVA - ArrayList
ArrayList介绍ArrayList是一个容量能够动态增长的可扩展数组,它的基本数据结构是数组,ArrayList内部封装了一个Object类型的数组,从一般的意义来说,它和数组没有本质的差别。它继承了抽象类AbstractList,实现了List、RandomAccess, Cloneable, java.io.Serializable接口。ArrayList默认第一次插入元素时创建大小为1...转载 2018-06-05 01:09:42 · 146 阅读 · 0 评论 -
JAVA - IO流(未完)
请使用手机"扫一扫"x转载 2018-05-24 10:19:55 · 222 阅读 · 0 评论 -
JAVA - 对象与对象变量
对象变量Date deadline;定义了一个对象变量deadline,它可以引用Date类型的对象。但是,一定要认识到:变量deadline不是一个对象,实际上也没有引用对象。此时,不能将任何 Date 方法应用于这个变量上。可以显式地将对象变量设置为null,表明这个对象变量目前没有引用任何对象。对象new Date();构造了一个对象。对象无法直接访问,只能通过对象引用来间接访问对象。当一个...转载 2018-06-11 14:26:22 · 6288 阅读 · 2 评论 -
JAVA - 类之间的关系
在JAVA以及其他的面向对象设计模式中,类与类之间主要有6种关系,分别是:依赖、关联、聚合、组合、继承、实现,他们的耦合度依次增强。其中,关联、聚合和组合关系仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等,它们在编程语言中的体现却是基本相同的。耦合度:依赖 < 关联 < 聚合 < 组合* 依赖(Dependence),即“uses-a”关系,是一种最明显的、最常见的...转载 2018-06-11 13:17:37 · 6471 阅读 · 0 评论 -
JAVA - 带标签的break和continue
不带标签的break和continue只能中断最内层循环|退回最内层循环的顶部,就没有办法从内部循环里跳出外部循环。尽管JAVA中goto是一个保留字,但在JAVA中并未使用它,这种设计提高了程序流程控制的可读性,但是也有不好的地方,它降低了程序流程控制的灵活性。其实,JAVA也可以完成一些类似于跳转的操作,那就是将break和continue配合标签一起使用。标签是后面跟有冒号的标识符,就像下面...转载 2018-06-03 19:39:38 · 334 阅读 · 0 评论 -
JAVA - 变量作用域
对于在作用域里定义的变量,作用域同时决定了它的“可见性”以及“存在时间”。在JAVA里,作用域是由花括号的位置决定的。JAVA用一对大括号作为语句块的范围,称为作用域,在作用域里定义的变量,只有在该作用域结束之前才可使用。 在JAVA中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。* 类级变量又称全局级变量或静态变量,需要使用static关键字修饰。类级变量在类定义后就已经存在,占用...转载 2018-06-03 13:20:49 · 15370 阅读 · 0 评论 -
JAVA - 判断两个浮点数相等
背景知识float型和double型是JAVA的基本类型,用于浮点数表示,在JAVA中float型占4个字节32位,double型占8个字节64位,一般比较适合用于工程测量计算中,其在内存里的存储结构如下:float型: 符号位(1 bit) 指数(8 bit) 尾数(23 bit) double型: 符号位(1 bit) 指数(11 bit) 尾数(52 bit) 注意:从左到右是从低位到高位,...转载 2018-06-03 01:09:53 · 9136 阅读 · 0 评论 -
JAVA - 枚举类型
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中。原理创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类),也就是说通过关键字enum创建枚举类型在编译后事实上也是一个类类型而且该类继承自java.lang.Enum类。值一般是大写的字母...转载 2018-05-16 16:09:03 · 151 阅读 · 0 评论 -
JAVA - 自动类型转换
转换规则:如果两个操作数中有一个是double类型的,另一个操作数就会转换为double类型。否则,如果操作数中有一个是float类型的,另一个操作数就会转换为float类型。否则,如果操作数中有一个是long类型的,另一个操作数就会转换为long类型。否则,两个操作数都将被转换为int类型。请使用手机"扫一扫"x...转载 2018-05-16 11:42:23 · 340 阅读 · 0 评论 -
JAVA - java.lang.Math类
注:JAVA中另外存在java.math包提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。导包:import java.lang.Math;常用函数:PIEabs(a);max(a,b);min(a,b);pow(a,b);sqrt(a);random(); ...转载 2018-05-16 11:26:18 · 606 阅读 · 0 评论 -
JAVA - String类
Java字符串就是Unicode字符序列,例如字符串"Java"就是4个Unicode字符J,a,v,a组成的。任何一个字符对应两个字节的定长编码,即任何一个字符(无论中文还是英文)都算一个字符长度,占用两个字节。Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的一个实例。String类使用了final修饰,不能被...转载 2018-05-17 22:52:56 · 196 阅读 · 0 评论