java基础
java后端
CRUSH-0725
这个作者很懒,什么都没留下…
展开
-
异常与自定义异常
异常假设要捕获多个异常,记得要从小到大排列,不然直接被第一个最大范围的异常捕获就没后面的代码什么事了选中代码块,ctrl+alt+t,快捷生成try/catch/finallythrow用于主动抛出异常,一般用在方法体中,比如:throw new ArithmeticException();如果在方法体中处理不了某个异常的话,需要用throws在方法上抛出异常,比如:public void test(int a,int b)throws ArithmeticException{}原创 2021-09-05 00:06:24 · 47 阅读 · 0 评论 -
抽象类和接口
抽象类abstract关键字修饰的类就是抽象类,抽象类中可以定义抽象方法。抽象方法没有方法体,只有修饰符、返回类型以及方法名和参数列表。反之,普通类中不能存在抽象方法抽象类中可以写普通方法,普通类中不能写抽象方法抽象类不能new出来,只能靠子类去extends,所以抽象类必须被继承。其子类有几个算几个,都必须实现这个抽象父类的抽象方法,除非子类也是抽象类在java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类可以实现多个接口抽象类也存在构造器,但是构造方法和类原创 2021-09-04 23:27:54 · 45 阅读 · 0 评论 -
static关键字和静态代码块
static关键字当一个类中有一个static静态属性和一个非静态属性时,比如在Student类中有两个属性:private static int age;private double score;静态属性可以直接用类名去调用,也可以实例化对象后使用,而非静态属性只能在实例化对象后使用:System.out.println(Student.age);Student s1 = new Student();System.out.println(s1.age);System.out.prin原创 2021-09-04 23:27:35 · 89 阅读 · 0 评论 -
java三大特性之多态
多态多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的示例而执行不同操作,是对象多种表现形式的体现。现实中,比如我们按下F1键这个动作,如果当前在Flash界面下弹出的就是AS3的帮助文档;如果当前在Word下弹出的就是Word帮助;在Windows下弹出的就是Windows帮助和支持。也就是说,同一个事件发生在不同的对象上会产生不同的结果。多态存在的三个必要条件继承重写父类引用指向子类对象:Parent p = new Child();图例解释clas原创 2021-09-04 23:27:15 · 90 阅读 · 0 评论 -
java三大特性之继承
继承继承是类和类之间的一种关系。继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。extends的意思是“扩展”。子类是父类的扩展。子类和父类之间,从意义上来讲应该具有“is a”的关系java中类只有单继承,没有多继承(一个儿子只能有一个爸爸,一个爸爸可以有多个儿子)ctrl+h可以打开查看继承关系java中所有的类都默认直接或者间接继承objectprivate修饰的私有的东西原创 2021-09-04 23:26:47 · 81 阅读 · 0 评论 -
java三大特性之封装
该露的露,该藏的藏程序设计要求“高内聚,低耦合”,高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合就是仅暴露少量的方法给外部使用。封装(数据的隐藏)通常,应该禁止直接访问一个对象中数据的实际表示,而应该通过操作接口来访问,这称为信息隐藏。记住这句话就够了属性私有,get/set封装的意义提高程序的安全性,保护数据隐藏代码的实现细节统一接口系统可维护性增加了...原创 2021-09-04 23:26:25 · 66 阅读 · 0 评论 -
构造方法相关
构造器名要和类名相同没有返回值,void也不能写new对象的时候本质是在调用构造方法构造方法可以初始化对象的值定义了有参构造方法后,如果要使用无参构造,必须手动写一个无参构造方法出来(因为自己不写构造方法时,系统默认生成一个无参构造方法,但是自己写了一个有参构造方法时,系统不再没默认生成,需要自己以方法重载的方式写一个无参构造方法)alt+insert快捷生成构造器,如果想生成无参构造方法,选择第二项Select None;如果想生成有参构造方法,选择参数后,直接点击ok...原创 2021-09-04 23:26:01 · 38 阅读 · 0 评论 -
方法的调用
一个类想要调用另一个类的方法,比如Test类想调用Student类中的say()方法,有两种方式:static静态方法:在Test类中直接类名.方法名:Student.say();非静态方法:在Test类中实例化Student对象,然后对象名.方法名:Student st = new Student();st.say();需要指出的是,就算是一个类调用自己类中的方法,如果是static静态方法,可以直接调用;如果是非静态方法,也和上边一样,要不改为静态方法,要不就要实例化对象。.原创 2021-09-04 23:24:39 · 503 阅读 · 0 评论 -
数组相关知识及示例
数组的声明和创建首先必须声明数组数量,才能在程序中使用数组,声明数组变量的语法为:dataType[] arrayRefVar;java使用new操作符来创建数组,语法为:dataType[] arrayRefVar = new dataType[arraySize];数组的元素是通过索引访问的,数组索引从0开始获取数组长度:arrays.length数组的四个基本特点:其长度是确定的。数组一旦被创建,其大小就是不可改变的其元素必须是相同类型,不允许出现混合类原创 2021-09-04 12:55:21 · 85 阅读 · 0 评论 -
递归及示例
递归就是:A方法调用A方法,就是自己调用自己利用递归可以用简单的程序来解决有些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。递归结构包括两个部分:递归头:什么时候不调用自身方法。如果没有头,将陷入死循环递归体:什么时候需要调用自身方法例子(实现阶乘):public static int f(int n){ .原创 2021-09-04 00:00:15 · 104 阅读 · 0 评论 -
可变参数及示例
JDK1.5开始,java支持传递同类型的可变参数给一个方法在方法声明中,在指定参数类型后加一个省略号(…)一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明例子:public static void printMax(double...numbers){ if(numbers.length==0){ System.out.println("No argument passed"); return; } .原创 2021-09-04 00:00:28 · 85 阅读 · 0 评论 -
方法的重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数方法的重载的规则方法名称必须相同参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)方法的返回类型可以相同也可以不同仅仅返回类型不同不足以成为方法的重载实现理论:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。...原创 2021-09-03 23:18:30 · 62 阅读 · 0 评论 -
break与continue
break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)例子:int i=0;while(i<100){ i++; System.out.println(i); if(i==30){ break; }}运行结果为输出1-30。continuecontinue语句用在循环语句中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接原创 2021-09-03 21:55:51 · 59 阅读 · 0 评论 -
增强for循环
以下两种循环输出结果一致,第二种为增强for循环:int[] numbers = {10,20,30,40,50};for(int i=0;i<5;i++){ System.out.println(numbers[i]);}for(int x:numbers){ System.out.println(x);}原创 2021-09-03 16:50:40 · 67 阅读 · 0 评论 -
使用idea工具进行反编译
点击Project Structure:复制项目输出路径:打开该路径,找到想要反编译的字节码class文件:右击idea结构书中的文件夹,选择Show in Explorer:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XidMqacU-1630655116046)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210903154117077...原创 2021-09-03 15:55:57 · 5555 阅读 · 0 评论 -
用户交互Scanner
用户交互Scannernext()一定要读取到有效字符后才可以结束输入对输入有效字符之前遇到的空白,next()方法会自动将其去掉只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符next()不能得到带有空格的字符串//创建一个扫描器对象,用于接收键盘数据Scanner scanner = new Scanner(System.in);System.out.println("使用next方式接收:");//判断用户有没有输入字符串if(scanner.hasNext()){原创 2021-09-03 14:36:29 · 46 阅读 · 0 评论 -
JavaDoc生成文档
JavaDoc生成文档JavaDoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过JavaDoc就可以同时形成程序的开发文档了。JavaDoc命令是用来生成自己的API文档的参数信息:@author作者名@version版本号@since指明需要最早使用的jdk版本@param参数名@return返回值情况@throws异常抛出情况使用idea生成J原创 2021-09-03 11:35:24 · 61 阅读 · 0 评论 -
java运算符
基本运算符1、当数字相加时,如果有一个是long类型,那么相加结果是long类型,如果都不是long类型,那么相加结果是int2、%取余也叫模运算3、执行完下面的代码,输出a=12;b=10;c=12;int a=10;int b=a++;int c=++a;这是因为a++是先把10赋值给b,a再自增1变成11;而++a是先自增1变成12,再把12赋值给c逻辑运算符与或运算符,如果前面已经能判断结果,那么后面的不再执行,比如:int c=5;boolean d=(c<4)&am原创 2021-09-03 10:49:54 · 126 阅读 · 0 评论 -
Math类
Math类Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。public class Test { public static void main (String []args) { System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2)); Syst原创 2021-09-03 09:50:17 · 114 阅读 · 0 评论 -
常量、变量作用域和变量命名规范
变量作用域1、类变量要加static关键字2、实例变量从属于对象,不初始化时为默认值3、局部变量写在方法里面public class variable{ static int allClick=0;//类变量 String str="hello world";//实例变量 public void method(){ int i=0;//局部变量 }}常量1、常量名一般为大写字母加下划线,比如static final int MAX_原创 2021-09-03 09:05:30 · 77 阅读 · 0 评论 -
java关键字
访问控制1、private:私有的2、protected:受保护的3、public:公共的4、default:默认类、方法和变量修饰符1、abstract:声明抽象2、class:类3、extends:继承4、final:最终值,不可改变的5、implements:实现(接口)6、interface:接口7、native:本地,原生方法(非 Java 实现)8、new:新,创建9、static:静态10、strictfp:严格,精准11、synchronized:线程,同步原创 2021-09-02 16:52:42 · 42 阅读 · 0 评论