
Java基础
Java基础知识
NeverGiveUpU
这个作者很懒,什么都没留下…
展开
-
Java基础——日期格式化
SimpleDateFormat类年 yyyy月 MM日 dd时 HH分 mm秒 ss毫秒 SS日期格式化显示(Date转换成String)Date date=new Date();//日期格式化显示,首先定义格式SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");//2019011SimpleDateFor...原创 2019-01-11 14:58:36 · 2701 阅读 · 0 评论 -
Java基础——生成随机数
Math.random()Math.random()方法会产生0到1之间的浮点数。可以使用以下方法产生0到N的正整数:int random = (int)(Math.random()*N);如何利用Math.random()方法产生随机一个小写字符呢?//也就是产生97到122的随机数,然后int转char(ASCII码)char random = (char) ('a' + Mat...原创 2019-01-11 14:28:09 · 670 阅读 · 0 评论 -
Java基础——strictfp关键字
关键字strictfp是strict float point的缩写,指的是精确浮点,它是用来确保浮点数运算的准确性。JVM在执行浮点数运算时,如果没有指定strictfp关键字,此时计算结果可能会不精确,而且计算结果在不同平台或厂商的虚拟机上会有不同的结果,导致意想不到的错误。而一旦使用了strictfp来声明一个类、接口或者方法,那么在所声明的范围内,Java编译器以及运行环境会完全依照IE...原创 2018-12-20 10:29:53 · 6852 阅读 · 0 评论 -
Java基础——lambda表达式
为什么要引入lambda表达式lambda表达式是一个可传递的代码块,可以在以后执行一次或多次。到目前为止,在Java中传递一个代码段并不容易,不能直接传递代码段。Java是一种面向对象语言,所以必须构造一个对象,这个对象的类需要有一个方法能包含所需的代码。在其他语言中,可以直接处理代码块。Java设计者很长时间以来一直拒绝增加这个特性,毕竟,Java的强大之处就在于其简单性和一致性。设计者...原创 2018-12-20 10:27:50 · 395 阅读 · 0 评论 -
Java基础——深复制,浅复制
引用对象Person a = new Person();Person b = a;这里的b是对象的引用,相当于C++中的指针。b和a是同一个对象,指向内存中的同一段。对b修改就相当于对a修改。那么怎么可以对b修改而不影响a呢?答案是使用clone方法。clone方法Java中的所有类默认继承自Object类,而Object类中提供了一个clone()方法。这个方法的作用是返回一个O...原创 2018-12-20 10:11:42 · 122 阅读 · 0 评论 -
Java基础——内部类
内部类在Java语言中,可以把一个类定义到另外一个类的内部,在类里面的类叫做内部类,外面的类叫外部类。这种情况下,内部类可以看作外部类的一个成员。内部类分为一下4种:静态内部类,成员内部类,局部内部类,匿名内部类。class outerClass{ static class innerClass1{} //静态内部类 class innerClass2{} //成员内部...原创 2018-12-20 10:08:45 · 90 阅读 · 0 评论 -
Java基础——枚举
理解枚举类型枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据结构,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束。枚举的定义package t6;// 定义枚举类型enum Day{ MONDAY, TUESDAY, WEDNEDAT, THURSDAY, FRIDAY, SATURDAY, SUNDAY}public cla...原创 2018-12-20 10:00:59 · 164 阅读 · 0 评论 -
Java基础——值传递,引用传递
值传递8种基础类型是值传递。传递的是副本,方法里的参数被修改不影响原数据。引用传递类,接口,数组是引用传递。传递的是对象所在的内存地址,将内存地址拷贝一份,然后作为值传递给参数。引用对象的实际内容可以被改变,但是引用对象的地址不会改变(因为内存地址是值传递,形参改变了不影响实参)。引用传递中的不可变类public class Test{ public static voi...原创 2018-12-20 09:53:46 · 205 阅读 · 0 评论 -
Java基础——Java类的关系
继承extends,不必多说。实现implements,不必多说。依赖简单的理解,就是一个类A中的方法使用了另一个类B。这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A。比如说,我用笔写字,首先需要一个类来代表我自己,然后需要一个类来代表一支笔,最后,“我”要调用“笔”里的方法来写字。public class Pen{ public void wri...原创 2018-12-20 09:49:58 · 134 阅读 · 0 评论 -
Java基础——native方法
什么是native方法(本地方法)native方法就是java调用非java代码的接口。native方法是这样一个java方法:该方法的实现由非java语言实现,比如C。定义一个native方法,不提供方法体(类似于抽象方法)。因为其方法体是由非java语言在外面实现的。例如Object类:package java.lang; public class Object { ........原创 2018-12-20 09:41:38 · 1546 阅读 · 0 评论 -
Java基础——序列化
什么是序列化?在分布式环境下,当进行远程通信时,无论是何种类型的数据,都会以二进制序列的形式在网络上传送。序列化时一种将对象以一连串的字节描述的过程,用于解决在对对象流进行读写操作时所引发的问题。序列化可以将对象的状态写在流里进行网络传输,或者保存到文件、数据库等系统里,并在需要的时候把该流读取出来重新构造一个相同的对象。如何实现序列化?所有要实现序列化的类都必须实现Serializabl...原创 2018-12-20 09:39:27 · 86 阅读 · 0 评论 -
Java基础——作用域
Java语言中,变量的类型主要有3种:成员变量、静态变量、局部变量。成员变量的声明周期与类的实例化对象相同。只要一个类被加载,JVM就会给类的静态变量分配存储空间。...原创 2018-12-20 09:37:50 · 98 阅读 · 0 评论 -
Java基础——字符串
字符串创建与存储机制字符串的声明与初始化有两种情况。第一种:String s1 = new String(“abc”)String s2 = new String(“abc”)。存在两个引用对象s1,s2,两个内容相同的字符串对象“abc”,它们在内存中的地址是不同的,只要用到new总会生成新的对象。第二种:String s1 = “abc”String s2 = “abc”在J...原创 2018-12-20 09:35:58 · 86 阅读 · 0 评论 -
Java基础——数组
Java中数组是不是类?java中数组不仅有自己的属性(例如length属性),也有一些方法可以被调用(例如clone方法)。从这个角度来讲,数组可以被看作是类(被实例化、被分配空间的类)。不属于原生类(未被实例化的类)。一维数组的初始化int[] a = new int[5];int[] b = {1,2,3,4,5};int[] c = new int[5]{1,2,3,4,5};...原创 2018-12-20 09:34:09 · 175 阅读 · 0 评论 -
Java接口——static关键字
static成员变量虽然Java语言中没有全局的概念,但可以通过static关键字来达到全局的效果。static修饰的变量叫静态变量,静态变量属于类,在内存中只有一个复制(所有对象实例的该变量都指向同一个内存地址),只要静态变量所在的类被加载,这个静态变量就会被分配空间。局部变量不允许定义为static。static成员方法static方法与static变量类似,属于类。static方...原创 2018-12-20 09:32:31 · 1641 阅读 · 0 评论 -
Java基础——switch
switch(expr),expr只能是一个整型表达式、字符或字符串。从本质上讲,switch对字符串的支持,其实是int类型值的匹配。它的实现原理如下:通过对case后面的String对象调用hashCode()方法,得到一个int类型的hash值,然后用这个hash值来唯一标识这个case。那么当匹配时,首先调用switch后字符串的hashCode()方法,获取一个hash值(int类型)...原创 2018-12-20 09:29:31 · 311 阅读 · 0 评论 -
Java基础——this,super,构造函数
thisthis是正在访问的代码所属的对象,是一个对象!关键字this有两个用途:引用隐式参数。调用该类其他的构造器。supersuper关键字有两个用途:调用超类的方法。调用超类的构造器。构造函数构造函数可以重载,但是不能被继承(也就没有重写)。构造方法只能通过new自动调用,不能手动调用。当开发人员没有提供构造函数时,编译器在把源代码编译成字节码的过程中会提供一...原创 2018-12-20 09:26:10 · 245 阅读 · 1 评论 -
Java基础——格式化输出
printf方法System.out.printf("%8.2f",33.3333);8代表浮点数占8个字符,少的用空格代替。2代表小数点后保留2位。System.out.printf("%,.2f",10000.0/3.0);打印3,333.33,用“,”分隔。可以使用多个标志,例如 %,(.2f 使用分组的分隔符并将负数括在括号内。String.format方法可以使用静...原创 2018-12-20 09:24:01 · 198 阅读 · 0 评论 -
Java基础——泛型
Java泛型是什么?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也可定义成参数形式(类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型...原创 2018-12-19 23:16:03 · 100 阅读 · 0 评论 -
Java基础——反射
反射机制Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。获取Class对象的3种方法Random r1 = new Random();//这一new,产生一个Random对象,一个Class对象Class rClass1 = r1...原创 2018-12-19 21:30:03 · 122 阅读 · 0 评论 -
Java基础——继承,多态
在覆盖一个方法时,子类方法不能低于超类方法的可见性。特别是超类方法是public,子类方法一定要声明为public。finalfinal类:该类不能被继承。且类的所有方法自动变为final方法(不包括变量)。final方法:该方法不能被覆盖(重写)。final变量:该方法初始化之后不允许改变值了。向上转型和向下转型记住一点:无论是向上还是向下转型,对象的类型在内存中是不会...原创 2018-12-19 21:13:31 · 169 阅读 · 0 评论 -
Java基础——抽象类,接口
抽象类抽象类中不一定要包含抽象方法,可以有已经实现的方法。一旦类中包含了抽象方法,该类必须声明为抽象类。抽象方法不能有方法主体。抽象方法必须且只能被public修饰(默认)。构造方法、类方法(static修饰的方法)不能声明为抽象方法。抽象类中可以定义成员变量,没有限制条件。抽象类没有构造方法。抽象类不能被实例化(new),因为抽象类中方法未具体化,是一个不完整的类。当子类继承抽象类时...原创 2018-12-19 20:51:07 · 248 阅读 · 0 评论