Java
文章平均质量分 66
Stay--hungry
这个作者很懒,什么都没留下…
展开
-
Java28:File
创建一个文件(目录)对象。构造File对象时,既可以传入绝对路径,也可以传入相对路径。File f = new File("/Users/shaoyihao/Desktop/test.txt");File对象既可以表示文件,也可以表示目录。注意:构造一个File对象,即使传入的文件或目录不存在,代码也不会出错。因为构造一个File对象,并不会导致任何磁盘操作。只有当调用File对象的某些方法的时候,才真正进行磁盘操作。变量内容f.getPath()构造函数中所传入的路径f原创 2022-03-30 11:54:37 · 484 阅读 · 0 评论 -
Java27:IO
输入就是将数据从各种输入设备(包括文件、键盘等)中读取到内存中,输出则正好相反,是将数据写入到各种输出设备(比如文件、显示器、磁盘等)。例如键盘就是一个标准的输入设备,而显示器就是一个标准的输出设备。文件既可以作为输入设备,又可以作为输出设备。数据流按照数据单位的不同,分为字节流和字符流。字节流:存储层面,逐字节地读取文件内容。例如要从磁盘读入一个6字节大小的文件,就相当于读入了6个字节的数据。字符流:文件内容层面,逐字符地读取文件。文章目录字节流InputStreamOutputStre原创 2022-03-16 15:09:53 · 769 阅读 · 0 评论 -
Java26:日期时间
java.util 包提供了 Date 类来封装当前的日期和时间。创建Date对象时,有两种构造函数。Date d1 = new Date(); //无参构造,以当前时间创建Date对象Date d2 = new Date(12345); //传入一个参数,表示从1970年1月1日起的毫秒数,以这个时间创建Date对象对象创建完后,可以调用一下方法:方法功能String toString( )把此Date对象转换为以下形式的String:Thu Mar 03 14:06:4原创 2022-03-03 14:08:41 · 1071 阅读 · 0 评论 -
Java25:内部的类
非静态内部类class A { int num; class B { //必须声明在成员的位置(即与属性和方法平等的位置) String name; void print() { System.out.println(num + ":" + name); } }}class test { public static void main(String[] args) {原创 2022-02-14 16:45:32 · 79 阅读 · 0 评论 -
Java24:单例模式
单例模式又叫做 Singleton模式,指的是一个类,在一个JVM里,只有一个实例存在。即一个类只会被实例化一次。饿汉式通过私有化其构造方法,使得外部无法通过new 得到新的实例。class A { private A() {} //私有化其构造方法 private static A instance = new A(); //只有一个实例对象 public static A getInstance() { return instance;原创 2022-02-05 15:32:11 · 74 阅读 · 0 评论 -
Java23:javadoc文档注释
Javadoc 是 Sun 公司提供的一种工具,它可以从程序源代码中抽取类、方法、成员等注释,然后形成一个和源代码配套的 API 帮助文档。也就是说,只要在编写程序时以一套特定的标签注释,在程序编写完成后,通过 Javadoc 就可以自动生成程序的 API 帮助文档。文档注释以/**开头,以*/结束,可以通过 Javadoc 生成 API 帮助文档,Java帮助文档主要用来说明类、成员变量和方法的功能。文档注释只放在类、接口、成员变量、方法之前,因为 Javadoc 只处理这些地方的文档注释,而忽略.原创 2022-02-05 15:20:20 · 560 阅读 · 0 评论 -
Java22:反射
类对象所有的类,都存在一个类对象,这个类对象用于提供类本身的信息,比如有几种构造方法, 有多少属性,有哪些普通方法。每个类的类对象是唯一的。获取类对象的方法:Class.forName(类名)注意:1. 类名为String类型 2.需要进行ClassNotFoundException异常处理。class test { public static void main(String[] args) { try { Class p = Class.f原创 2022-01-23 20:50:35 · 255 阅读 · 0 评论 -
Java21:调试
文章目录断言assertloggingCommons Logging与Log4j断言assert断言(Assertion)是一种调试程序的方式。在Java中,使用assert关键字来实现断言。assert 表达式;若表达式为真,则无影响;若表达式为假,则会抛出AssertionError。因此assert语句也可改写为:if (!表达式) throw new AssertionError();assert语句中还可以加入自定义的警告信息:assert a >= 500: "ERROR!原创 2022-01-23 20:02:15 · 486 阅读 · 0 评论 -
Java20:NullPointerException
NullPointerException是一种代码逻辑错误,遇到NullPointerException,遵循原则是早暴露,早修复,严禁使用catch来隐藏这种编码错误。如何避免这种错误?成员变量在定义时初始化为""class Person { String name = "";}编写业务逻辑时,用空字符串""表示未填写比null安全得多。返回空字符串、空数组,而不是null这样可以使得调用方无需检查结果是否为null。public String[] readLines原创 2022-01-23 19:01:20 · 143 阅读 · 0 评论 -
Java19:异常
在计算机程序运行的过程中,总是会出现各种各样的错误。这些错误可能是用户造成的,可能是程序错误造成的,也可能是不可避免的随机错误。所以,一个健壮的程序必须处理各种各样的错误。很多事件并非总是按照人们自己设计意愿顺利发展的,经常出现这样那样的异常情况。例如: 你计划周末郊游,计划从家里出发→到达目的→游泳→烧烤→回家。但天有不测风云,当你准备烧烤时候突然天降大雨,只能终止郊游提前回家。“天降大雨”是一种异常情况,你的计划应该考虑到这样的情况,并且应该有处理这种异常的预案。Throwable:Error原创 2022-01-22 22:24:43 · 517 阅读 · 0 评论 -
Java18:Math、Random、SecureRandom
Mathabs()max()、min()pow()、sqrt()exp()、log()、log10()sin()、cos()、tan()、asin()、acos()random():生成一个[0,1)[0, 1)[0,1)之间的随机数Math.random() * (R - L) + L:得到一个[L,R)[L, R)[L,R)内的随机数(内部调用了Random类,所以也是伪随机数,只是无法人为指定种子。)Math.PI、Math.ERandom引入类:import java.u原创 2022-01-21 16:34:43 · 712 阅读 · 0 评论 -
Java17:BigInteger、BigDecimal
BigInteger在Java中,由CPU原生提供的整型最大范围是long型整数(64位)。使用long型整数可以直接通过CPU指令进行计算,速度非常快。若使用的整数范围超过了long型怎么办?java.math.BigInteger就是用来表示任意大小的整数的不变类。其内部用一个数组int[]来模拟一个大整数。引入类:import java.math.BigInteger;BigInteger bi = new BigInteger("1234567890"); //创建方法对BigIn原创 2022-01-21 16:15:08 · 742 阅读 · 0 评论 -
Java16:枚举类型
使用enum来定义枚举类:enum Weekday { SUN, MON, TUE, WED, THU, FRI, SAT; //依次列出枚举的常量名}class test { public static void main(String[] args) { Weekday day = Weekday.SUN; //为枚举类型 if (day == Weekday.SUN) { } }}使用enum定义的枚举类是一种引用类型。通常情况下原创 2022-01-21 15:27:32 · 417 阅读 · 0 评论 -
Java15:包装类型
Java的数据类型分两种:基本类型:byte,short,int,long,boolean,float,double,char引用类型:class、interface引用类型可以赋值为null(表示空),但基本类型不能赋值为null。一些情况下,将基本类型转化为类会非常有用,这种基本类型所对应的类称为包装类型,Java核心库为每种基本类型都提供了对应的包装类型。基本类型对应的引用类型bytejava.lang.Byteshortjava.lang.Short原创 2022-01-20 21:55:21 · 451 阅读 · 1 评论 -
Java14:链式操作
链式操作的关键是:定义的函数会返回this,这样,就可以不断调用自身的函数。例子1:累加public class Main { public static void main(String[] args) { Adder adder = new Adder(); //创建一个对象 adder.add(3).add(5).inc().add(10); //多次调用函数,但调用的对象是同一个 System.out.println(adder.valu原创 2022-01-20 21:02:50 · 600 阅读 · 0 评论 -
Java13:语句
switchswitch语句中字符串匹配时,是比较“内容相等”。从Java 12开始,switch语句升级为更简洁的表达式语法,这种新语法只会执行匹配的语句,保证只有一种路径会被执行,不需要break语句:class Main { public static void main(String[] args) { String fruit = "mango"; switch (fruit) { case "apple" -> Syst原创 2022-01-19 17:13:37 · 181 阅读 · 0 评论 -
Java12:输入与输出
输出System.out.println()println是print line的缩写,表示输出并换行System.out.print()输出不换行格式化输出:System.out.printf()详细的格式化参数–JDK文档输入首先,我们通过import语句导入java.util.Scannerimport java.util.Scanner;然后,创建Scanner类的对象并传入System.inScanner scanner = new Scanner(Syste原创 2022-01-19 16:00:36 · 332 阅读 · 0 评论 -
Java11:运算符
对byte和short类型进行移位时,会首先转换为int再进行位移。左移运算移出的位补0//由于int类型为4个字节(32位)int n = 7; // 00000000 00000000 00000000 00000111 = 7int a = n << 1; // 00000000 00000000 00000000 00001110 = 14int b = n << 2; // 00000000 00000000 00000000 0001110.原创 2022-01-19 15:36:06 · 666 阅读 · 0 评论 -
Java10:package与import
packagepackage机制主要是为了方便程序的管理。package语句写在源文件的开头一个源文件中只能有一个package语句package 包名 包名实际上就是文件夹(目录、路径)使用package机制之后,类名变为包名.类名同一个包内的类之间互相调用可以省略包名;不同包中的类之间相互调用需要写上完整包名import用import向一个源文件中引入其它包中的一个类。import语句写在package语句之下,class语句之上。import 类名;import 包名.*;原创 2022-01-18 21:34:12 · 351 阅读 · 0 评论 -
Java9:final
final修饰的变量无法二次赋值final修饰类中实例变量时,必须在定义时就进行赋值。final修饰的实例变量是不可变的,因此一般和static联合使用,称为“常量”public static final int CONSTANT = 10;final修饰的类无法被继承final修饰的方法无法被重写final修饰对象(引用)时,该引用无法再指向别的对象。(对象的信息还是可以修改的)...原创 2022-01-18 20:43:31 · 206 阅读 · 0 评论 -
Java8:多态
无论是向上转型,还是向下转型,两个类之间必须要有继承关系。向上转型class Animal { void move() { System.out.println("动物在移动"); }}class Cat extends Animal{ void move() { System.out.println("小猫在走猫步"); } public static void main(String[] args) { .原创 2022-01-18 17:27:13 · 434 阅读 · 0 评论 -
Java7:继承
继承最基本的作用就是:代码复用,避免写一些重复的代码。除此之外,继承也是之后函数覆盖、多态的基础。注意:Java只支持单继承,即:一个类只能继承一个类。但支持嵌套继承。a类继承A类,则A类称为父类、superclass;a类称为子类、subclass构造函数不支持继承,其余内容都支持继承。其中,private内容不支持直接访问,但子类中仍含有这些内容,可以通过实例函数间接访问。若一个类没有被程序员指定继承某个类,则该类默认继承JavaSE库中提供的java.lang.Object类所有类中都原创 2022-01-18 16:04:10 · 247 阅读 · 0 评论 -
Java小tips
实例代码块:其中的代码执行于创建变量时,构造函数调用之间(对象初始化时机)。class A { { System.out.println("hhhh"); } //实例语句块 public A() { System.out.println("构造函数invoke"); } public static void main(String[] args) { new A(); }}...原创 2022-01-17 23:55:37 · 59 阅读 · 0 评论 -
Java6:类与封装
面向对象面向对象三大特征:封装继承多态开发流程:面向对象分析(OOA)面向对象设计(OOD)面向对象编程(OOP)类与对象类是对某一类事物的一种抽象;对象是类的实例化(instance),new 类名()。类中包含两大部分:属性(变量)+行为(函数)。类也是一种数据类型(引用数据类型)public class A { public static void main(String[] args) { A a; a = new A();原创 2022-01-15 21:39:59 · 131 阅读 · 0 评论 -
Java5:null
Java中有两种数据类型,一种是基本类型(int,boolean,…),还有一种是引用类型(类)。还有一个特殊的null类型。不能用null类型声明变量或者将变量转换为null类型。null类型唯一的值就是null任意引用类型变量都可以被赋值为null,不能将null赋值给基本类型变量程序员可以忽略null类型,可以认为null仅仅是一个可以表示某引用类型为空的特殊符号。null是java中的关键字,对大小写敏感的,写成NULL是错误的就像每种原始类型都有默认值一样,int默认值为0,原创 2022-01-15 21:11:03 · 380 阅读 · 0 评论 -
Java4:函数(方法)
函数定义在类体中,即是类的成员函数。class t1 { public static void main(String[] args) { t1.print(); //也可写作: print(); } public static void print() { System.out.println("Hello"); }}对于本类中的函数,调用时可以省略类名。若要调用其它类中的函数,则必须要指定类名。class t1 {原创 2022-01-15 17:33:12 · 129 阅读 · 0 评论 -
Java3:数组和字符串
数组java中的数组是一个对象。数组的声明:int a[];int[] b;//这两种声明方法都可数组的初始化://指定元素int a[];a = new int[]{1, 2, 3, 4, 5}; //元素个数即数组长度//指定维数int a[];a = new int[5];注意:同时指定维数和元素int a[] = new int[3]{1, 2, 3};这种创建方式是错误的!也可以将数组的声明与初始化结合在一起:int a[] = new int[]{原创 2022-01-15 16:20:39 · 1267 阅读 · 0 评论 -
Java2:数据类型、变量、常量
数据类型数据类型关键字字节备注字节型byte1短整型short2整型int4长整型long8数据后面加上‘L’(只能是大写L)字符型char2两个字节(可以存下一个汉字)单精度浮点型float4数据后面加上‘F’或‘f’(必须加)双精度浮点型double8数据后面加上‘D’或‘d’布尔型boolean1值为true或false若浮点型数据后面不加字母,则默认为double型clas原创 2022-01-14 22:50:56 · 174 阅读 · 1 评论 -
Java1:入门
Java既是一种编程语言,又是一个软件平台。作为软件平台的Java提供了编程接口和Java虚拟机(JVM)。Java程序的编译与运行在终端上编译运行.java文件:编写一个Java源文件test.java(注意文件中的类名要与文件名相同)命令javac test.java 对源文件进行编译,生成一个test.class文件(命令javac后面写源文件的路径(绝对或相对都可))命令java test 对test.class文件进行处理,再运行该文件(注意此处命令不是java test.cl原创 2022-01-13 12:01:58 · 432 阅读 · 0 评论