
Java
学习笔记
立flag的咸鱼
这个作者很懒,什么都没留下…
展开
-
java基础--数据类型转换(自动转换、强制转换)
转换规则八种基本数据类型,除boolean不能转换,其他七种可以相互转换如果整数型字面量没有超出byte、short、char的取值范围,可以直接将其赋值给这三个类型的变量自动类型转换(小容量向大容量转换):byte<short(char)<int<long<float<double,其中short和char都占两个字节,但char可以表示更大的正整数强制类型转换(大容量向小容量转换):加强制类型转换符,但运行时可能会出现精度损失byte、short、char类型混原创 2020-08-28 17:01:40 · 289 阅读 · 0 评论 -
java进阶--集合继承关系图
原创 2020-08-20 17:21:49 · 354 阅读 · 0 评论 -
java进阶--集合
集合是什么原创 2020-08-20 17:20:46 · 280 阅读 · 0 评论 -
java进阶--自定义异常
SUN提供的JDK内置异常肯定不够用,在实际开发中,有很多业务出现的异常JDK中都是没有的,需要自定义异常。1.步骤第一步:编写一个类继承Exception(编译时异常)或者RuntimeException(运行时异常)第二步:提供两个构造方法,一个无参数的,一个带有String参数的//自定义异常public class MyException extends Exception{ public MyException(){} public MyException(St原创 2020-08-05 14:10:26 · 242 阅读 · 0 评论 -
java进阶--try...catch中的finally子句、面试题笔试题
通常在finally语句块中完成资源的关闭/释放,因为即使try中出现了异常finally中的代码一定会执行。下列程序空指针异常后会跳过流的关闭代码,执行catch中的语句,所以该程序不安全,关闭不了流:public static void main(String[] args) { try { //创建输入流对象 FileInputStream fis=new FileInputStream("D:\\downloads\\test.tx原创 2020-07-14 11:03:41 · 443 阅读 · 0 评论 -
java进阶--异常对象的常用方法getMessage、printStackTrace
getMessage()获取异常简单的描述信息printStackTrace()打印异常追踪的堆栈信息public static void main(String[] args) { NullPointerException e=new NullPointerException("空指针异常"); String msg=e.getMessage();//获取异常的信息,这个信息实际上就是构造方法上面String参数 System.out.printl原创 2020-07-12 10:53:53 · 500 阅读 · 0 评论 -
java进阶--异常继承结构、处理方式throws和try catch
异常在java中以类的形式存在,每一个异常类都可以创建异常对象编译时异常和运行时异常编译时异常一般发生的概率比较高,需要在运行之前进行预处理运行时异常发生的概率比较低,不需要预处理所有异常都发生在运行阶段java异常处理两种方式在方法声明的位置上,使用throws关键字,抛给上一级使用try…catch语句进行异常捕捉...原创 2020-07-10 16:32:53 · 312 阅读 · 0 评论 -
java进阶--枚举类型enum
枚举:可以一个个列举出来的,才建议使用枚举类型枚举编译后也是生成class文件枚举是引用数据类型枚举中的每一个值可以看做是常量结果只有两种情况的建议使用布尔类型,超过两种且可以列举出来的建议使用枚举//输出a和b的商public static boolean divide(ina a,int b){ try{ int c=a/b; return true; }catch(Exception e){ return false; }}//用枚举类型改写enum Resu.原创 2020-07-03 08:53:23 · 260 阅读 · 0 评论 -
java进阶--随机数
随机数import java.util.Random;public static void main(String[] args){ //创建随机数对象 Random r=new Random(); //随机产生一个int类型范围内的数字 int num1=r.nextInt(); //产生[0~100]之间的随机数,不包括101 int num2=r.nextInt(101);}...原创 2020-05-18 23:46:13 · 189 阅读 · 0 评论 -
java进阶--数字的格式化
DecimalFormat导包:java.DecimalFormat#代表任意数字,代表千分位.代表小数点0代表不够时补0例:DecimalFormat df=new DecimalFormat("###,###.##");String s1=df.(1234.56);//要给一个double类型String s2=df.(1234.56789);String s3=df.(1234.5);System.out.println(s1);//1,234.56System.out.pr原创 2020-05-18 16:27:26 · 184 阅读 · 0 评论 -
java进阶--日期格式化、Date和String相互转换
获得日期并格式化(Date转化为String)引入包java.util.Date//获取系统当前的时间(精确到毫秒的系统当前时间)//直接调用无参构造方法就行Date nowTime=new Date();//java.util.Date的toString()方法已经被重写了//输出的不是一个对象的内存地址,而是日期字符串System.out.println(nowTime);//SimpleDateFormat是java.text包下负责日期格式化的/*yyyy 年(4位)MM原创 2020-05-18 16:19:13 · 459 阅读 · 0 评论 -
java进阶--String、int、Integer类型互换
String、int、Integer类型互换原创 2020-05-15 22:10:05 · 159 阅读 · 1 评论 -
Java进阶--包装类、装箱和拆箱
java中为8种基本数据类型对应准备了8种包装类型,8种包装类属于引用数据类型,父类是Object原创 2020-05-15 16:59:21 · 191 阅读 · 0 评论 -
Java进阶--字符串拼接StringBuffer和StringBuilder
使用+进行字符串拼接会创建多个字符串对象,给方法区字符串常量池带来很大压力StringBuffer默认初始化容量是16个byte[ ]数组用append()进行拼接,底层调用原创 2020-05-12 21:20:44 · 362 阅读 · 0 评论 -
Java进阶--String存储原理、字符串比较及常用方法
引言关于Java JDK中内置的一个类:java.lang.StringString表示字符串类型,属于引用数据类型在java中使用双引号""括起来的都是String对象java中规定,双引号括起来的字符串是不可变的,也就是说"abc"整个生命周期内容都不能改变String字符串的存储原理在JDK中双引号括起来的字符串,都是直接存储在方法区的字符串常量池中。原因:字符串使用太频繁,为了保证执行效率。且垃圾回收器不会释放常量。public static void main(String[]原创 2020-05-11 12:03:11 · 251 阅读 · 0 评论 -
Java进阶--数组及扩容
引用数据类型,父类是object一个容器,可以同时容纳多个元素原创 2020-04-01 21:17:43 · 286 阅读 · 0 评论 -
Java进阶--面向对象_匿名内部类
什么是内部类?在类的内部又定义了一个新的类内部类的分类静态内部类:类似于静态变量实例内部类:类似于实例变量局部内部类:类似于局部变量匿名内部类是局部内部类的一种不建议用匿名内部类,缺点:太复杂可读性差;类没有名字不能重复使用//负责计算的接口interface Compute{ //抽象方法 int sum(int a,int b);}//不用匿名类时,...原创 2020-03-12 10:29:02 · 184 阅读 · 0 评论 -
Java进阶--面向对象_object类常用toString、equals、finalize、hashCode方法
toString()方法源码public String toString(){ return getClass().getName()+"@"+Integer.toHexString(hashCode());}源代码上toString()方法的默认实现类名@对象的内存地址转化为十六进制的格式toString()方法的作用通过调用这个方法可以将一个“java对象”转换成...原创 2020-03-11 22:47:51 · 127 阅读 · 0 评论 -
Java进阶--面向对象_访问控制权限
访问控制权限原创 2020-03-11 12:18:27 · 203 阅读 · 0 评论 -
Java进阶--面向对象_package和import
package包机制package是包机制,作用是方便程序的管理。不通功能的类分别存放在不同的包下package是一个关键字,后面加包名package语句只能出现在java源代码的第一行命名规范:一般采用公司域名倒序的方式(因为公司域名具有全球唯一性)package 公司域名倒序+项目名+模块名+功能名对于带有package的java怎么编译和运行?package com.csd...原创 2020-03-11 11:49:30 · 151 阅读 · 0 评论 -
Java进阶--面向对象_接口、接口和抽象类的区别
接口:接口是引用数据类型接口是完全抽象的。(抽象类是半抽象),或者说接口是特殊的抽象类接口定义语法:[修饰符列表] interface 接口名{ }接口支持多继承,一个接口可以继承多个接口...原创 2020-03-10 19:34:38 · 215 阅读 · 0 评论 -
Java进阶--面向对象_抽象类
抽象类原创 2020-03-09 21:22:37 · 215 阅读 · 0 评论 -
Java基础--面向对象_final关键字、常量
final原创 2020-03-09 11:52:46 · 160 阅读 · 0 评论 -
Java基础--面向对象_super关键字
super关键字原创 2020-03-08 16:18:19 · 464 阅读 · 0 评论 -
Java基础--面向对象_多态详解
向上转型和向下转型向上转型(upcasting):子------>父向下转型(downcasting):父------>子【注】无论哪种转型,两个类之间必须要有继承关系public class Animal{ public void eat() { System.out.println("动物吃食物!"); }}public class Cat exte...原创 2020-02-29 15:03:42 · 161 阅读 · 0 评论 -
Java基础--面向对象_Override方法的覆盖
什么时候要重写?父类中的方法已经无法满足当前子类的需求子类重写父类中的方法之后,子类调用的一定是重写后的方法发生方法的覆盖的条件?发生在具有继承关系的两个类之间必须具有相同的方法名,相同的返回值类型,相同的参数列表重写的方法不能比被重写的方法拥有更低的访问权限重写的方法不能比被重写的方法抛出更宽泛的异常私有的方法不能被覆盖构造方法不能被覆盖,因为构造方法无法被继承静态的方法...原创 2020-02-29 11:00:32 · 156 阅读 · 0 评论 -
Java基础--面向对象_类的继承
最基本的作用:代码重用语法:[修饰符列表] class 子类名 extends 父类名{ 类体 }类和类之间只支持单继承,默认继承object类子类会继承父类所有数据,包括私有的。但不能继承构造方法在子类中无法直接访问父类中的私有数据,但是可以间接访问...原创 2020-02-28 21:04:28 · 126 阅读 · 0 评论 -
Java基础--面向对象_单例模式初步
单例模式是23种设计模式中最简单的一种设计模式作用:保证JVM中某个类型的java对象永远只有一个目的:节省内存开销实现:构造方法私有化对外提供一个公开的静态的获取当前类型对象的方法提供一个当前类型的静态变量分类:饿汉式单例:在类加载阶段就创建了对象public class Singleton { //类加载时只执行一次 private static Singlet...原创 2020-02-28 20:41:19 · 147 阅读 · 0 评论 -
Java基础--面向对象_static关键字详解
static修饰的变量叫做“静态变量”static修饰的方法叫做“静态方法”static还可以定义静态语句块。静态语句块在类加载阶段执行,并且只执行一次public class StaticTest { //静态语句块 static{ System.out.println("1"); } static{ System.out.println("2"); } p...原创 2020-02-28 16:07:14 · 130 阅读 · 0 评论 -
Java基础--面向对象_实例语句块
实例语句块在每一次调用构造方法之前会调用一次public class StaticTest { //静态语句块 static{ System.out.println("静态语句"); } //实例语句块 { System.out.println("1"); } { System.out.println("2"); } //构造方法 StaticTest()...原创 2020-02-28 10:19:08 · 361 阅读 · 0 评论 -
Java基础--面向对象_this关键字
this是什么?this是一个引用类型,保存了内存地址在堆中,每一个对象都有this,this保存的地址指向自身this用在哪里?可以用在成员方法中。谁去调用这个成员方法,this就代表谁,this就指当前对象可以用在构造方法中。语法:this(实参);通过一个构造方法去调用另一个构造方法目的:代码重用//需求:在创建日期对象的时候,默认的日期是:1970年1月1日C...原创 2020-02-27 19:38:52 · 168 阅读 · 0 评论 -
Java基础--面向对象_方法调用时参数的传递
public class Test { public static void m1(Animal a){ a.age++; System.out.println(a.age);//11 } public static void main(String[] args) { //创建Animal对象 Animal a=new Animal(10); m1(a);...原创 2020-02-27 16:27:32 · 320 阅读 · 0 评论 -
Java基础--构造方法
构造函数构造方法语法:[修饰符列表] 构造方法名(形式参数列表){ 方法体;}构造方法的方法名必须和类名一致构造方法修饰词列表:public、proteced、private构造方法不具有返回值类型,即没有返回值,也不能加void构造方法可以和普通方法一样重载构造方法的调用:new 构造方法名(实参);在堆中开辟空间存储对象构造方法的作用:创建对象给成员变量赋值(...原创 2020-02-27 10:20:48 · 271 阅读 · 0 评论 -
Java基础--面向对象_内存管理、封装
Student stu1=new Student();stu1是引用,是局部变量,在栈中,保存了对象的内存地址,通过引用去间接访问堆中的对象堆中的才是对象,new开辟的空间都在堆中访问成员变量,必须使用“引用.”系统默认值get和set方法set赋值,get读取。都是成员方法,不能用static静态方法set:public void 函数名(数据类型 参数)get:p...原创 2020-02-27 10:10:10 · 130 阅读 · 0 评论