
Java基础
文倾城
不为圣贤,便是禽兽。
展开
-
Java 旋转图片
java 旋转图片原创 2025-01-11 21:06:47 · 154 阅读 · 0 评论 -
Java 生成token
Java 生成和解析token原创 2025-01-02 20:26:59 · 255 阅读 · 0 评论 -
Java 压缩和解压zip文件
Java 压缩和解压zip文件,包括文件和目录原创 2024-12-31 20:08:12 · 265 阅读 · 0 评论 -
java 低级类型相加自动转换为int
1. byte、char、short 随意相加最后结果的类型都是 int,以下代码编译报错package org.example;public class App { public static void main( String[] args ) { short a = 2; byte b = 3; b = a + b; }}2. 用 += 会进行自动强制转换,以下代码编译通过package org.example原创 2021-08-20 20:43:15 · 243 阅读 · 0 评论 -
子类构造器默认调用父类的无参构造器
如果子类没有显式调用父类的构造器,将调用父类的无参构造器,以下代码编译不通过package org.example;public class A { public A(String s) { }}package org.example;public class B extends A { public B() { }}在A类中加入无参构造器,或B类的构造器中调用A类有参构造器,编译就可以通过。...原创 2021-08-20 20:16:40 · 929 阅读 · 0 评论 -
匿名内部类中的super
偶然发现一个现象:package org.example;public class A { public int prop = 1; protected void method() { }}package org.example;public class B extends A { public int prop = 2; @Override protected void method() { super.pr原创 2021-08-19 21:19:51 · 369 阅读 · 0 评论 -
Java易错点之list
用 Arrays.asList() 生产的对象不能添加和删除元素,因为对象的类型是 java.util.Arrays 的内部类 ArrayList,不是 java.util.ArrayList List<String> list = Arrays.asList("墨倾池", "砚寒清", "默苍离", "慕容宁"); list.remove(3); System.out.println(list);输出Exception in thr原创 2021-07-26 18:36:29 · 138 阅读 · 0 评论 -
Java易错点之参数传递
public class Main { public static void main(String[] args) { Integer i = new Integer(10); Integer j = new Integer(20); swap(i, j); System.out.println("i = " + i + ",j = " + j); } public static void swap(Intege.原创 2021-07-25 16:45:59 · 178 阅读 · 0 评论 -
Java易错点之引用置为空
public class Main { public static void main(String[] args) { int[] myArray = {1, 2, 3, 4, 5}; ChangeIt.doIt(myArray); for (int i = 0; i < myArray.length; i++) { System.out.println(myArray[i]); } }}.原创 2021-07-25 15:03:55 · 848 阅读 · 0 评论 -
Java基础之抽象类
1.抽象方法使用abstract修饰的方法,没有方法体,只有声明。定义的是一种规范,就是告诉子类必须要给抽象方法提供具体的实现。原创 2019-11-04 08:43:18 · 111 阅读 · 0 评论 -
Java基础之final关键字
1. 修饰变量:被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。2. 修饰方法:该方法不可被子类重写。但是可以被重载。3. 修饰类:修饰的类不能被继承。比如:Math、String等。...原创 2019-10-30 07:17:27 · 112 阅读 · 0 评论 -
Java基础之多态
要点:1. 多态是方法的多态,不是属性的多态(多态与属性无关)。2. 多态的存在要有三个必要条件:继承、方法重写、父类引用指向子类对象。3. 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。对象的转型:1. 父类引用指向子类对象,是向上转型,自动。2. 父类变量转成真实的子类类型,是向下转型,变量前加“(子类类型)”,手动,可用instanceof避免异常。...原创 2019-10-29 07:21:27 · 124 阅读 · 0 评论 -
Java基础之封装
一、含义把对象的属性和操作结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。二、优点1. 提高代码的安全性2. 提高代码的复用性3. “高内聚”:封装细节,便于修改内部代码,提高可维护性4. “低耦合”:简化外部调用,便于调用者调用,便于扩展和协作三、访问控制符修饰符同一个类同一个包中子类所有类private√default√√...原创 2019-10-28 07:58:49 · 156 阅读 · 0 评论 -
Java基础之继承
一、继承的实现1. 通过extends关键字继承父类。2. 用instanceof运算符判断对象是否是某个类或其子类的实例。二、继承使用要点1. 父类也称作超类、基类、派生类等。2. Java中类只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难以维护。3. Java中类没有多继承,接口有多继承。4. 子类继承父类可以得到父类的全部属性和方法(除了父类...原创 2019-10-27 14:05:55 · 120 阅读 · 0 评论 -
Java基础之参数传值机制和包机制
Java中所有参数都是值传递,也就是说传递的是值的副本。基本数据类型传递,修改副本不会影响原件。引用类型传递的是对象的地址,修改副本指向对象的值,意味着原件指向对象的值也发生了改变。...原创 2019-10-17 07:02:09 · 194 阅读 · 0 评论 -
Java基础之static
static修饰的成员变量和方法从属于类,普通变量和方法从属于对象。static变量只有一份,该类的所有对象共享。在static方法中不能访问非静态成员。static修饰的静态代码块,先执行父类的,执行子类的。...原创 2019-10-16 22:50:49 · 89 阅读 · 0 评论 -
Java基础之this
局部变量和成语变量同名时,用this来区分。可以用this在构造器中调用重载的构造器,必须放在第一句中。this不能在静态方法中使用。原创 2019-10-16 22:31:05 · 78 阅读 · 0 评论 -
Java基础之垃圾回收
一、垃圾回收过程发现无用的对象回收无用的对象占用的内存空间二、相关算法1.引用计数法堆中的每一个对象都有一个引用计数。被引用一次,计数加1,被引用变量值变为null,计数减1,当计数为0是,则被视为无用对象。算法简单,但是循环引用的无用对象无法识别。2.引用可达法(根搜索算法)程序把所有引用关系看做一张图,从一些节点GC Roots开始,寻找这些节点对应的引用节点,找到节点后,继...原创 2019-10-16 07:45:45 · 99 阅读 · 0 评论 -
Java基础之构造器
格式[修饰符] 类名(形参列表) { // 语句}要点通过 new 关键字调用。构造器有返回值但不能定义返回值类型,可以使用 return 结束方法。如果没有手动添加构造器,编译器会自动创建一个无参的构造器。构造器的方法名必须和类名一致。构造器可以重载。构造器可以通过 this 调用本类的其它构造器,也可以通过 super 调用父类的构造器,且只能作为构造器中的第一条语句,...原创 2019-10-15 22:17:50 · 111 阅读 · 0 评论 -
Java基础之内存浅析
JVM内存结构分为三块:栈、堆、方法区(也在堆中)。栈描述的是方法执行的内存模型。每个线程创建一个栈(存储实际参数,局部变量等,线程私有,不共享),每个方法创建一个栈帧(存储局部变量、操作数、方法出口等)。栈是一个连续的内存空间,速度快,先进后出。堆存储对象,所有线程共享,不连续,分配灵活、速度慢。方法区,线程共享,存放类信息(Class对象)、静态变量、字符串常量等。...原创 2019-10-15 07:44:05 · 77 阅读 · 0 评论 -
Java基础之面向对象
三大特征:封装、继承、多态。宏观使用面向对象思考,微观处理问题依然是面向过程。对象是具体的事物,类是一类对象的模板,是对对象的抽象。...原创 2019-10-14 21:18:47 · 94 阅读 · 0 评论 -
Java基础之方法
声明格式[修饰符1 修饰符2 …] 返回值类型 方法名(形式参数列表) {}方法重载方法名相同形参类型、个数或顺序不同只有返回值类型不同,不构成重载,编译直接报错可变长度参数 public static void test1(int... i) { }可变长度参数只能是最后一个参数...原创 2019-10-14 07:05:54 · 92 阅读 · 0 评论 -
Java基础之控制语句循环
1.forfor (int i = 0; i < 100; i++) {}2.while第一种while (true) {}2.第二种do {} while(true);3.break和continuebreak 跳出当前整个循环continue 跳过本次循环添加标签可以指定跳跃位置,下列代码输出101~150之间的质数 public void tes...原创 2019-10-13 11:33:25 · 110 阅读 · 0 评论 -
java基础之注释
java支持三种注释:1.单行注释 // :当定义了一个变量时跟在变量后面进行解释变量的含义;2.多行注释 /* */:当需要解释复杂的业务逻辑时使用,或者在单行代码中间插入注释使用;3.文档注释 /** */:在类和方法的开头使用,用来解释类和方法的含义,生成API文档时,这些注释可以用来阅读。上面使用注释的方式是个人理解,实际情况因不同人的习惯而异。...原创 2019-10-07 13:13:26 · 129 阅读 · 0 评论 -
java基础之标识符
1.首字母应以英文字符、美元符($)、下划线(_)开始;2.非首字母由英文字符、美元符($)、下划线(_)、数字组成;3.关键字不能用来命名;4.大小写敏感;5.使用中文的话,编译不会报错,但最好别用;6.最好使用驼峰命名法,中式英文也行,尽量不要用拼音;7.方法和变量首字母小写,类的首字母大写。...原创 2019-10-07 13:21:30 · 129 阅读 · 0 评论 -
java基础之变量
变量的本质是存储空间。1.局部变量:在代码块和方法中定义的变量,在使用前必须进行初始化,从属于代码块或方法,生命周期最短;2.成员变量(也叫实例变量):类中定义的属性,会自动初始化,从属于对象,生成周期较短,和类的存在时间有关;3.静态变量(也叫类变量):类中的定义的属性,会自动初始化,用关键字 static 定义,从属于类,生命周期最长。...原创 2019-10-07 13:34:11 · 79 阅读 · 0 评论 -
java基础之常量
1.字面常量:如1、2、'a'、"Good"等;2.符号常量:用关键字final 定义的变量,命名规则是全部大写,多个字母用下划线隔开。常量一旦被初始化后不能修改,如果用 final 定义成员变量,则必须手动初始化。...原创 2019-10-07 13:48:20 · 131 阅读 · 0 评论 -
java基础之基本数据类型
一、分类1. byte 数值型、整数类型 占1个字节 -2^7~2^7-1(-128~127)2. short 数值型、整数类型 占2个字节-2^15~2^15-1(-32768~32767)3. int 数值型、整数类型 占4个字节-2^31~2^31-14. long 数值型、整数类型 占8个字节-2^63~2^63-15. float 数值型、浮点类型 占4个字节 ...原创 2019-10-07 14:58:15 · 87 阅读 · 0 评论 -
java基础之运算符
一、分类运算符分类 算术运算符 二元运算符 +、-、*、/、% 一元运算符 ++、-- 赋值运算符 = 扩展运算符 +=、-=、*=、/= 关系运算符 >、<、>=、<=、==、!=、instanceof 逻辑运算符 &、|、&&、||、!、^ 位运算符 &、|、^...原创 2019-10-07 16:44:52 · 99 阅读 · 0 评论 -
java基础之类型转换
一、自动类型转换1.容量小的类型可以自动转换成容量大的。byte可自动转换为short、int、long、float、double;short可自动转换为int、long、float、double;int可自动转换为long、float(可能会损失精度)、double;long可自动转换为float(可能会损失精度)、double(可能会损失精度);float可自动转换为d...原创 2019-10-07 18:58:21 · 196 阅读 · 0 评论 -
java基础之Scanner(视频笔记)
Scanner用处不大,工作中没用到过,稍微记录一下: Scanner scanner = new Scanner(System.in); System.out.println("请输入名字:"); String name = scanner.nextLine(); System.out.println("请输入你的爱好:");...原创 2019-10-08 21:05:27 · 92 阅读 · 0 评论 -
java基础之控制语句
1.if单选结构2.if-else双选择结构3.if-else if-else多选择结构4.switch多选择结构:仔细思考什么时候需要加break,没有break将继续执行,直到遇到break或运行到结尾;判断的表达式可以是整数或者枚举,1.7以后可以用字符串。...原创 2019-10-08 21:40:56 · 91 阅读 · 0 评论 -
java基础之初步了解(视频笔记)
1.发展历史等略。2.java核心优势:跨平台(也叫“可移植性”)。3.java先编译后解释:源文件-->编译成字节码文件-->类加载器-->字节码校验-->解释器-->系统平台,所以java源文件和操作系统底层,是通过虚拟机JVM连接起来的,不同平台的JVM不同,可以将这理解为跨平台的原理。4.配置环境变量PATH:先加系统变量JAVA_HOME=jdk...原创 2019-10-07 13:03:51 · 111 阅读 · 0 评论