- 博客(201)
- 收藏
- 关注

原创 Java多线程(超详细!)
1、什么是进程?什么是线程?进程是:一个应用程序(1个进程是一个软件)。线程是:一个进程中的执行场景/执行单元。注意:一个进程可以启动多个线程。eg.对于java程序来说,当在DOS命令窗口中输入:java HelloWorld 回车之后。会先启动JVM,而JVM就是一个进程。JVM再启动一个主线程调用main方法。同时再启动一个垃圾回收线程负责看护,回收垃圾。最起码,现在的java程序中至少有两个线程并发,一个是垃圾回收线程,一个是执行main方法的主线程。3、进程和线程是什么关系?
2021-05-13 01:06:13
139382
61

原创 Java异常(超详细!)
1、什么是异常,java提供异常处理机制有什么用?什么是异常:程序执行过程中的不正常情况。异常的作用:增强程序的 健壮性。eg.public class ExceptionTest01 { public static void main(String[] args) { int a = 10; int b = 0; // 实际上JVM在执行到此处的时候,会new异常对象:new ArithmeticException("/ by zero"
2021-05-03 13:39:24
36657
28

原创 Java super关键字(超详细!)
1.什么是super?super是一个关键字,全部小写。2.怎么学?super和this对比着学习。this:this能出现在实例方法和构造方法中。this的语法是:“this.”、“this()”this 不能 使用在静态方法中。this. 大部分情况下是可以省略的。this.什么时候不能省略呢? 在区分局部变量和实例变量的时候不能省略。eg.public void setName(String name){ this.name = name;}this() 只能出现在构
2021-04-20 20:07:15
20206
14
原创 Androi天气
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"
2022-05-26 00:27:42
769
原创 python123部分习题2
文章目录 1.猜年龄2.英寸和厘米的交互(升级版)3.计算利息/存款利息4.判断字符串结尾5.统计字符串中单词数量/统计单词的数量6.反转一个整数7.各位数字之和为5的数8.判断数值类型9.分类统计字符10.一元二次方程求根11.判断三角形并计算面积12.绩点计算13.与7无...
2022-05-18 17:21:15
8153
原创 python123部分编程题
三位水仙花数ans = ""for i in range(100, 1000): sum = 0 for j in str(i): sum += (eval(j)) ** 3 if sum == i: ans += "{},".format(i)print(ans[:-1])猴子吃桃 IIdef peach(n): if n == 10: return 1 else: return (pe
2022-05-04 16:32:05
30939
原创 Java DynamicProxy【动态代理】
动态代理: 基于反射机制。1、动态代理总括1.1、 ★什么是动态代理 ?使用jdk的反射机制,创建对象的能力, 创建的是代理类的对象。 而不用你创建代理类文件。不用写java文件。动态: 在程序执行时,调用jdk提供的方法才能创建代理类的对象。注意: jdk动态代理,必须有接口,目标类必须实现接口, 没有接口时,需要使用cglib动态代理1.2、★ 知道动态代理能做什么 ?可以在不改变原来目标方法功能的前提下, 可以在代理中增强自己的功能代码。eg.你所在的项目中,有一个功能是其他人(
2021-10-15 17:54:16
1124
2
原创 Java JDBC
1、什么是JDBC?Java DataBase Connectivity在java语言中编写sql语句,对mysql数据库中的数据进行CRUD操作。JDBC就是一堆接口,负责连接数据库的.2、JDBC相关的类库在哪里?java.sql.*;3、JDBC本质上是一堆什么呢?java.sql.*;这个包下都是JDBC的接口,SUN公司制定的!JDBC是体现“接口作用”的非常经典的例子。JDBC降低了耦合度,提高了扩展力。对于java程序员来说,不需要关心数据库是哪个品牌。只要面向JDBC接
2021-10-08 16:14:43
878
1
原创 Java注解
1、注解是什么?注解,或者叫做注释类型,英文单词是:Annotation。注解Annotation是一种引用数据类型。编译之后也是生成xxx.class文件。2、怎么自定义注解呢?语法格式?[修饰符列表] @interface 注解类型名{}3、注解怎么使用,用在什么地方?3.1、注解使用时的语法格式@注解类型名3.2、注解可以出现的地方注解可以出现在类上、属性上、方法上、变量上等…注解还可以出现在注解类型上。4、JDK内置了哪些注解呢?java.lang包下的注释类
2021-10-05 14:13:56
2832
原创 Java可变长度参数
语法: public static void m(int... args){ System.out.println("m方法执行了!"); } // 必须在最后,只能有1个。 public static void m2(int a, String... args1){ }语法:类型... (注意:一定是3个点。)注意:可变长度参数要求的参数个数是:0~N个。可变长度参数在参数列表中必须在最后一个位置上,而且可变长度参数只能有1个。可
2021-10-04 16:49:15
517
原创 关于JDK中自带的类加载器和双亲委派机制【了解】
1、什么是类加载器?专门负责加载类的命令/工具。【ClassLoader】2、JDK中自带了3个类加载器启动类加载器:rt.jar扩展类加载器:ext/*.jar应用类加载器:classpath3、eg.:假设有这样一段代码:String s = "abc";代码在开始执行之前,会将所需要类全部加载到JVM当中。通过类加载器加载,看到以上代码类加载器会找String.class文件,找到就加载,那么是怎么进行加载的呢?首先通过“启动类加载器”加载。注: 启动类加载器专门加载:
2021-10-03 15:52:14
364
原创 Java资源绑定器【Properties神器】【配合Properties使用,爽到爆!】
前言java.util包下提供了一个资源绑定器【ResourceBundle】,便于获取属性配置文件【Properties】中的内容。使用以下这种方式的时候,属性配置文件xxx.properties必须放到类路径下。eg.class ResourceBundleTest{ public static void main(String[] args) { // 资源绑定器,只能绑定xxx.properties文件。并且这个文件必须在类路径下。文件扩展名也必须是properties
2021-10-03 15:41:39
516
原创 Java中通用的文件路径【不受操作系统影响!】
通用方式获取文件绝对路径String path = Thread.currentThread().getContextClassLoader().getResource("类路径下的文件地址") .getPath();注: 这个文件必须在类路径下。什么是类路径下?在src下的都是类路径下src是类的根路径解释Thread.currentThread()当前线程对象。getContextClassLoader()是线程对象的方法,可以获取到当前线程的类加载器对
2021-10-03 15:21:28
600
原创 Java反射(超详细!)
1、反射机制有什么用?通过java语言中的反射机制可以操作字节码文件(可以读和修改字节码文件。)通过反射机制可以操作代码片段。(class文件。)2、反射机制的相关类在哪个包下?java.lang.reflect.*;3、反射机制相关的重要的类有哪些?类含义java.lang.Class代表整个字节码。代表一个类型,代表整个类。java.lang.reflect.Method代表字节码中的方法字节码。代表类中的方法。java.lang.reflect.Con
2021-10-02 22:32:26
133231
44
原创 1095 解码PAT准考证 (25 分) ※
PAT 准考证号由 4 部分组成:第 1 位是级别,即 T 代表顶级;A 代表甲级;B 代表乙级;第 2~4 位是考场编号,范围从 101 到 999;第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位;最后 11~13 位是考生编号,范围从 000 到 999。现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。输入格式:输入首先在一行中给出两个正整数 N(≤10^4)和 M(≤100),分别为考生人数和统计要求的个数。接下来 N 行,每行给出一个考生的准考
2021-08-05 21:12:02
199
原创 Java IO流(超详细!)
一、什么是IO流I : InputO : Output通过IO可以完成硬盘文件的读和写。二、IO流的分类按照 流的方向 进行分类:以内存作为参照物:往内存中去:叫做输入(Input)。或者叫做读(Read)。从内存中出来:叫做输出(Output)。或者叫做写(Write)。按照 读取数据方式 不同进行分类:按照 字节 的方式读取数据,一次读取1个字节byte,等同于一次读取8个二进制位。这种流是万能的,什么类型的文件都可以读取。包括:文本文件,图片,声音文件,视频文
2021-05-07 22:39:30
63720
28
原创 Java Random随机数类
一、构造方法构造方法名备注Random()Random(long seed)如果种子一样,会生成同一个数二、方法方法名作用int nextInt()返回正负20亿的随机数int nextInt(int n)返回 [0, n) 之间的随机数double nextDouble()返回 [0, 1) 之间的随机数eg.class randomTest{ public static void main(String[]
2021-05-01 23:08:31
376
原创 Java enum枚举类型
1、枚举是一种 引用数据类型2、枚举类型怎么定义?语法格式:enum 枚举类型名{ 枚举值1,枚举值2}3、结果只有两种情况的,建议使用布尔类型。结果超过两种并且还是可以一枚一枚列举出来的,建议使用枚举类型。eg.颜色、四季、星期等都可以使用枚举类型。4.枚举编译之后也是生成class文件。5.枚举中的每一个值可以看做是 常量。...
2021-05-01 22:26:36
316
原创 Java数字类
一、java.math.BigDecimal类BigDecimal 属于大数据,精度极高。不属于基本数据类型,属于java对象(引用数据类型)这是SUN提供的一个类。专门用在财务软件当中。用法参考API文档!二、java.text.DecimalFormat类1.构造方法构造方法名备注DecimalFormat()DecimalFormat(String pattern)pattern为数字格式2.方法方法名作用String format
2021-05-01 22:11:14
417
原创 Java日期类
一、java.util.Date日期类1.构造方法构造方法名备注Date()获取当前系统时间Date(long date)二、java.text.SimpleDateFormat日期格式化类1.构造方法构造方法名备注SimpleDateFormat()SimpleDateFormat(String pattern)pattern为日期格式2.方法方法名作用String format(Date date)将
2021-05-01 21:40:51
556
原创 Java int、Integer、String互转
eg.class IntegerTest{ public static void main(String[] args) { //int ---> Integer Integer x1 = 10;//自动装箱 int j = 11; Integer x2 = Integer.valueOf(j); //Integer ---> int int y1 = .
2021-05-01 19:07:31
408
1
原创 Java 八大包装类(超详细!)
一、8种基本数据类型对应的包装类型名基本数据类型包装类型bytejava.lang.Byte(父类Number)shortjava.lang.Short(父类Number)intjava.lang.Integer(父类Number)longjava.lang.Long(父类Number)floatjava.lang.Float(父类Number)doublejava.lang.Double(父类Number)booleanjava.la
2021-05-01 18:26:37
22737
5
原创 java StringBuffer和StringBuilder
一、前言我们在实际的开发中,如果需要进行字符串的频繁拼接,会出现以下问题:java中的字符串是不可变的,每一次拼接都会产生新字符串。这样会占用大量的方法区内存。造成内存空间的浪费。eg.String s = "abc";s += "hello";就以上两行代码,就导致在方法区字符串常量池当中创建了3个对象:"abc""hello""abchello"因此引出StringBuffer和StringBuilder可变字符串!二、如何优化StringBuffer和StringBuild
2021-04-30 21:51:35
7769
5
原创 java String类(超详细!)
一、前言1、String表示字符串类型,属于 引用数据类型,不属于基本数据类型。2、在java中随便使用 双引号括起来 的都是String对象。例如:“abc”,“def”,“hello world!”,这是3个String对象。3、java中规定,双引号括起来的字符串,是 不可变 的,也就是说"abc"自出生到最终死亡,不可变,不能变成"abcd",也不能变成"ab"4、在JDK当中双引号括起来的字符串,例如:“abc” "def"都是直接存储在“方法区”的“字符串常量池”当中的。5、为什
2021-04-30 21:24:44
76801
25
原创 Java Arrays工具类函数
方法声明作用static int binarySearch(int[] a, int key)二分查找某个数返回下标,没找到返回-1static int[] copyOf(int[] original, int newLength)复制数组到一个更大的新数组里面,返回新数组static int[] copyOfRange(int[] original, int from, int to)复制指定长度的数组到一个更大的新数组里面,返回新数组static boolea...
2021-04-30 19:56:43
259
1
原创 Java选择排序
算法思想每一次从这堆“参与比较的数据当中”找出最小值,拿着这个最小值和“参与比较的这堆最前面的元素”交换位置。代码for(int i = 0; i < arr.length - 1; i++){ // 假设起点i下标位置上的元素是最小的。 int min = i; for(int j = i + 1; j < arr.length; j++){ if(arr[j] < arr[min]){ min = j; //最小值的
2021-04-30 19:13:17
154
1
原创 Java冒泡排序
算法思想每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边。(冒出最大的那个气泡。)(此轮找出最大的数据下一轮不参与比较!)核心:拿着左边的数字和右边的数字比对,当左边 > 右边的时候,交换位置。代码for(int i = arr.length - 1; i > 0; i--){ for(int j = 0; j < i; j++){ if(arr[j] > arr[j + 1]){ // 交换位置。
2021-04-30 19:06:20
176
1
原创 Java数组(超详细!)
1、Java语言中的数组是一种 引用数据类型。不属于基本数据类型。数组的父类是 Object。2、数组实际上是一个容器,可以同时容纳多个元素。(数组是一个数据的集合)3、数组当中可以存储“基本数据类型”的数据,也可以存储“引用数据类型”的数据。4、数组因为是引用类型,所以数组对象存储在 堆内存 当中。(数组是存储在堆当中的)5、数组当中如果存储的是“java对象”的话,实际上存储的是对象的“引用(内存地址)”,数组中不能直接存储java对象。6、数组一旦创建,在java中规定,长度不可变。(数组长
2021-04-30 18:56:31
11016
5
原创 java 接口、匿名内部类练习
一、题目描述利用接口做参数,写个计算器,能完成加减乘除运算。(1)定义一个接口Compute含有一个方法int computer(int n, int m)。(2)设计四个类分别实现此接口,完成加、减、乘、除运算。(3)设计一个类UseCompute,类中含有方法:public void useCom(Compute com, int one, int two),此方法能够用传递过来的对象调用computer方法完成运算,并输出运算的结果。(4)设计一个主类Test,调用UseCompute中的方
2021-04-28 23:47:13
1602
原创 Java String类“==”和equals()方法的一些事
直接上例子:class string{ public static void main(String[] args) { //方法区 String s1 = "abc"; String s2 = "abc"; System.out.println(s1 == s2);//true System.out.println(s1.equals(s2));//true System.out.println("-
2021-04-25 23:29:10
179
原创 Java Object类的finalize()方法
1、在Object类中的源代码:protected void finalize() throws Throwable { }GC:负责调用finalize()方法。2、finalize()方法只有一个方法体,里面没有代码,而且这个方法是protected修饰的。3、这个方法不需要程序员手动调用,JVM的垃圾回收器负责调用这个方法。finalize()只需要重写,重写完将来自动会有程序来调用。4、finalize()方法的执行时机:当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调
2021-04-24 20:32:37
338
原创 Java Object类的clone()方法之深克隆和浅克隆
前言克隆,即复制一个对象,该对象的属性与被复制的对象一致,如果不使用Object类中的clone方法实现克隆,可以自己new出一个对象,并对相应的属性进行数据,这样也能实现克隆的目的。但当对象属性较多时,这样的克隆方式会比较麻烦,所以Object类中实现了clone方法,用于克隆对象。Java中的克隆分为浅克隆与深克隆一、实现克隆的方式1.对象的类需要实现Cloneable接口2.重写Object类中的clone()方法3.根据重写的clone()方法得到想要的克隆结果,例如浅克隆与深克隆。
2021-04-24 20:24:41
1002
原创 Java Object类的equals()方法
1.equals方法的源代码public boolean equals(Object obj) { return (this == obj);}2.SUN公司设计equals方法的目的是什么?equals方法是 判断两个对象是否相等。3.研究一下Object类给的这个默认的equals方法够不够用在Object类中的equals方法当中,默认采用的是“== ”判断两个java对象是否相等。而“ ==”判断的是两个java对象的 内存地址,我们应该判断两个java对象的内容是否相等。所以老
2021-04-24 20:12:15
2092
1
原创 Java Object类的toString()方法
1.源代码长什么样?public String toString() { return this.getClass().getName() + "@" + Integer.toHexString(hashCode());}源代码上toString()方法的默认实现是:类名@对象的内存地址转换为十六进制的形式2.SUN公司设计toString()方法的目的是什么?2.1 toString()方法的作用是什么?toString()方法的设计目的是:通过调用这个方法可以将一个“java对象”转
2021-04-24 19:13:33
366
原创 Java匿名内部类
1.什么是匿名内部类是一种特殊的内部类,该类 没有名字。eg.class Test01{ public static void main(String[] args){ // 调用MyMath中的mySum方法。 MyMath mm = new MyMath();//第一种方法: /* Compute c = new ComputeImpl(); mm.mySum(c, 100, 200); */ //合并(这样写代码,表示这个类名是有的。类名是:ComputeI
2021-04-24 18:38:31
215
原创 Java访问权限控制符
1.访问控制权限都有哪些?4个private 私有public 公开protected 受保护默认(什么都不写)eg.public class User{ // 私有的 private int id; // 受保护的 protected int age; // 公开的 public int weight; // 默认的 String name;}2.以上的4个访问控制权限:控制的范围是什么?private 表示私有的,只能在本类中访问public 表示公开的,在
2021-04-24 18:20:21
444
原创 java类型和类型之间的关系(初步)
is a(继承)、has a(关联)、like a(实现)is a:Cat is a Animal(猫是一个动物)凡是能够满足is a的表示“继承关系”A extends Bhas a:I has a Pen(我有一支笔)凡是能够满足has a关系的表示“关联关系”关联关系通常以“属性”的形式存在。A{ B b;}like a:Cooker like a FoodMenu(厨师像一个菜单一样)凡是能够满足like a关系的表示“实现关系”实现关系通常是:类实现接口。A
2021-04-23 21:33:18
172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人