![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
毛栗子201105
争做技术流
展开
-
Android——基本控件之按钮组件Button(五)
Button组件介绍原创 2023-06-13 15:50:02 · 169 阅读 · 0 评论 -
Java面向对象高级部分——通过反射调用类中的方法(五十五)
反射调用类中的方法原创 2023-05-31 20:04:41 · 83 阅读 · 0 评论 -
Java面向对象高级部分——通过Class类取得完整的类的结构(五十四)
Java原创 2022-09-06 21:15:42 · 104 阅读 · 0 评论 -
Java面向对象高级部分——实例化的时候调用指定的构造方法(五十三)
Java实例化对象原创 2022-09-06 21:11:36 · 211 阅读 · 0 评论 -
Java面向对象高级部分——通过Class类实例化对象(五十二)
在Class类当中实例化对象是一个最常用的的操作,以后所有的框架的基本原理都是根据这个实现。正常情况下,我们使用new关键字实例化一个对象,现在我们通过Class类完成,步骤如下:·根据packeg.class实例化对象·通过Class类中的 newInstance()package obc19;public class Main { public static void main(String[] args) { Class<?> c = null;原创 2022-01-07 19:52:15 · 1403 阅读 · 0 评论 -
Java面向对象高级部分——Java的反射机制:Class类(五十一)
在反射机制中Class类是一个操作的源头,所有的反射操作都要由此展开,如果想实例化此类,这里有三种方式:第一种:通过Object类中的getClass方法package obc19;public class Main { public static void main(String[] args) { Person p = new Person(); Class<?> c = p.getClass(); System.out.println(c.getName(原创 2022-01-06 17:55:17 · 303 阅读 · 0 评论 -
Java面向对象高级部分——Java的反射机制:反射的概念(五十)
反射:正常情况下,要使用一个类,必须找到此类,并且实例化对象,必须先有类后有对象,那么如果现在想通过一个对象找到他的类呢?在Object类中有一个这样的方法:public final Class<?> getClass()所有的对象因此都可以使用getClass()方法。package obc19;public class Main { public static void main(String[] args) { Person p = new Person.原创 2022-01-05 18:53:08 · 273 阅读 · 0 评论 -
Java面向对象高级部分——TCP加入多线程(四十九)
TCP加入多线程:每一个客户端使用一个线程的对象进行表示。完成线程的操作类:package ScoketDemo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;public class EchoThread implements R...原创 2022-01-04 16:37:03 · 119 阅读 · 0 评论 -
Java面向对象高级部分——网络通信:服务端程序(四十八)
服务端程序:package obc20;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;public class HelloServer {原创 2022-01-03 01:00:00 · 199 阅读 · 0 评论 -
Java面向对象高级部分——网络通信:开发客户端代码(四十七)
开发客户端代码:package obc20;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;import java.net.UnknownHostException;public class HelloClient { public static void main(String[] args) thr原创 2022-01-02 00:30:00 · 152 阅读 · 0 评论 -
Java面向对象高级部分——网络通信:TCP程序的实现(四十六)
死锁:过多的使用同步将有可能导致死锁原创 2022-01-01 00:30:00 · 154 阅读 · 0 评论 -
Java面向对象高级部分——同步和死锁(四十五)
前的买票程序一直有一个问题,就是在同一个时间点可能存在两个售票点卖同一张票,这是不符合实际的。解决方法有两种: ·使用同步方法 ·使用同步代码块使用同步方法package obc18;public class ThreadDemo02 implements Runnable{ int ticket = 10; @Override public void run() { saleTicket(); Thread.currentThread().inter..原创 2021-12-31 15:35:23 · 218 阅读 · 0 评论 -
Java面向对象高级部分——Java运行需要的线程(四十四)
通过程序发现,主函数本身是一个线程,那么java运行的时候,最少需要几个线程?至少两个:·main·垃圾回收机制(gx)线程的休眠:让线程休眠一段时间,什么事情都不干package obc18;public class OopDemo02 { public static void main(String[] args) { System.out.println("休眠之前"); try { Thread.sleep(3000); } catch原创 2021-12-30 16:55:43 · 83 阅读 · 0 评论 -
Java面向对象高级部分——线程的一些操作方法(四十三)
对于多线程来说,所有方法都在Thread当中:static Thread currentThread() 获得当前正在执行的线程对象long geiId() 获得该线程的标识符String getName()获得该线程的名称int getPriority()获得线程的优先级Thread.State getState() 返回该线程的状态void interrupt() 中断线程void setNa...原创 2021-12-29 16:53:40 · 247 阅读 · 0 评论 -
Java面向对象高级部分——Runnable接口实现多线程(四十二)
在实际开发当中,一个多线程很少使用直接继承Thread完成,大部分情况下,是去实现Runnable接口完成多线程操作。要实现Runnable接口必须覆写run()方法,同时,这个实现类并不能直接启动线程,而是通过这个实现类的实例,可以实例化一个新的Thread,通过新的Thread当中的start方法可以开启线程。package obc18;public class OopDemo01 implements Runnable{ String name; public OopDemo原创 2021-12-28 18:10:24 · 215 阅读 · 0 评论 -
Java面向对象高级部分——通过继承Thread类完成多线程(四十一)
进程与线程计算机的发展,最早是从单进程的计算机发展到我们多进程的。线程呢则是进程的进一步划分,如果线程关闭,进程仍然可以执行,但是如果进程关闭,此中的线程也将关闭,这是一种包含的关系。Java本身的一大优势就是这是一门支持多线程的语言。多线程的实现手段:java当中有两种实现多线程的手段:·继承Thread类完成操作·实现Runnable接口完成操作通过继承Thread类完成多线程:package obc18;publi...原创 2021-12-27 18:04:53 · 176 阅读 · 0 评论 -
Java面向对象高级部分——对象的序列化(四十)
对象的序列化问题·对象的序列化就是指把一个对象写入到流当中·对象的反序列化指的就是从一个流当中读取一个对象对象的序列化的好处就是在于即便程序结束了,对象依然可以保留下来,如果要对一个类进行序列化的话,那么这个类必须实现Serializable接口。对象序列化的步骤:·创建一个对象输出流(ObjectOutputStream),可以连接到其他的流,比如说文件输出流·创建对象,将对象转换成流的形式·关闭流序列化(如果有一个属性你...原创 2021-12-26 03:00:00 · 72 阅读 · 0 评论 -
Java面向对象高级部分——输入输出重定向(三十九)
System.out和System.err都有固定的输出目标,而System.in也固定的输入源,但是System类中还提供了三个方法,来重写定向输入和输出的位置。public static void setErr(PrintStream err)public static void setIn(InputStream in)public static void setout(PrintStream out)package obc17;import java.io.File;impo原创 2021-12-25 21:19:43 · 315 阅读 · 0 评论 -
Java面向对象高级部分——BufferedReader(三十八)
观察BufferedReader的构造方法,发现其构造方法的参数是一个Reader对象,但是我们的System.in是一个InputStream对象,此时就剩下一步,将字节流转换成字符流。java当中,专门提供了两个类与字节——字符流的转换InputStreamReaderOutputStreamWriterpackage obc17;import java.io.BufferedReader;import java.io.IOException;import java.io.In原创 2021-12-24 09:05:21 · 460 阅读 · 0 评论 -
Java面向对象高级部分——System类对IO的支持(三十七)
System类中有三个常量:·out:表示标准的输出流,输出位置默认在控制台·in:表示的标准的输入流,默认输入的源是键盘·err:表示标准的错误输出,位置也是控制台System.out:发现这个常量其实是一个PrintStream,因此存在通过一定改正,向其他位置输出的可能package obc17;import java.io.File;import java.io.FileNotFoundException;impor...原创 2021-12-23 17:16:37 · 444 阅读 · 0 评论 -
Java面向对象高级部分——打印流(三十六)
打印流的定义如下: public class PrintStream extends FilterOutputStream implements Appendable, Closeable 观察到PrintStream是OutputStream的孙子类,继续观察其构造方法PrintStream(OutputStreamout),通过这个方法发现,其参数居然是他的爷爷类,在java当中我们称这种设计的模式叫做装饰模式,这样可以根据OutputStream的子类.原创 2021-12-22 17:40:30 · 348 阅读 · 0 评论 -
Java面向对象高级部分——字符输入流:Reader(三十五)
public abstract class Reader extends Object implements Readable, Closeable package obc17;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.Reader;pub...原创 2021-12-21 17:41:38 · 222 阅读 · 0 评论 -
Java面向对象高级部分——字符输出流:Writer(三十四)
public abstract class Writer extends Object implements Appendable, Closeable, Flushable package obc17;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.Writer;public class OopDemo05 { ...原创 2021-12-20 09:28:00 · 346 阅读 · 0 评论 -
Java面向对象高级部分——字节输入流:InputStream(三十三)
字节输入流:InputStream public abstract class InputStream extends InputStream package obc17;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;原创 2021-12-19 01:00:00 · 153 阅读 · 0 评论 -
Java面向对象高级部分——字节输出流OutputStream(三十二)
在进行IO操作时,我们必须遵循以下的几个步骤:1、使用File找到一个文件2、使用字节流或者字符流子类为字节流或字符流实例化3、进行读写操作4、关闭流在整个IO包中,流的操作分为两种:字节流:字节输出流:OutputStream字节输入流:InputStream字符流:字符输出流:Writer字符输入流:Reader字节输出流OutputStream:public abstract clas...原创 2021-12-18 01:00:00 · 493 阅读 · 0 评论 -
Java面向对象高级部分IO操作——文件操作类File(三十一)
文件操作:File类:是IO操作当中唯一代表磁盘本身的类,File类中定义了一些与平台无关的操作方法,用来创建和删除文件,判断文件是否存在以及文件是否为文件夹。File中常用的操作:public File(String pathname):构造方法,根基指定的路径构造File对象public BooleancreateNewFile() throws IOException: 创建文件public Booleandelete():删除文件...原创 2021-12-17 17:42:27 · 256 阅读 · 0 评论 -
Java面向对象高级部分——Map集合(三十)
在日常生活中,总会找到一组组数据是按照键值对的形式相关联出现的。比如手机联系人:key→value人名→号码类似于这种集合,我们可以使用Map集合来完成时限。Map类集一样是一个接口,通常使用的也是两个实现类,一个是HashMap一个是TreeMap。但是我们通过API发现,Map接口的泛型有两种一种是Key,一种是Value。Map的使用规则:·Map中的键不能重复·Map主要用于查找,而不是输出Map当中的主要方法,都是针对键的:...原创 2021-12-16 17:54:16 · 517 阅读 · 0 评论 -
Java面向对象高级部分——Set类集接口(二十九)
Set和List用法基本一致·List集合是允许存在相同的对象的,但是Set集合是不允许重复对象的·Set集合是随机存储,而List第一个放进去的元素必然下标为0,Set则不然Set接口两个常用的实现类,HashSet和TreeSe:HashSet:package obc16;import java.util.HashSet;import java.util.Iterator;import java.util.Set;publi...原创 2021-12-15 18:34:21 · 339 阅读 · 0 评论 -
Java面向对象高级部分——List接口(二十八)
类集:类的集合,用来存储整组的数据,其实呢就是一个动态数组。数组的缺点:(1)长度固定。(2) 只能存储相同的数据类型。类集就是在数组的基础上扩充了数组的功能,类集的长度是可以变化的,一个类集也可以保持不同类型的数据,当然,这样保持数据,我们并不推荐。java的类集接口:在java当中,类集以接口的形式体现出来,Collection<E>接口是类集的最高父接口,我们主要学习的是子接口List和Set。List类集接口:既然是一个接口,那么想要实例化就需要靠它的实现类,Li原创 2021-12-14 17:01:41 · 722 阅读 · 0 评论 -
Java面向对象高级部分——日期格式处理(二十七)
在java当中有一个util包下面的Date类,此类一般只会使用到他的无参构造方法,用于取得系统当前的时间,精确到毫秒,其他的构造方法基本都已经过时了。package obc15;import java.util.Date;public class OopDemo06 { public static void main(String[] args) { Date date = new Date(); System.out.println(date); }}Date当原创 2021-12-13 09:47:14 · 260 阅读 · 0 评论 -
Java面向对象高级部分——Math类(二十六)
此类定义了java中所有支持的数学运算方法。我们需要关注的是一个round()方法。此方法是用来进行四舍五入运算的。package obc15;public class OopDemo03 { public static void main(String[] args) { double d = 10.2321; double x = Math.round(d); System.out.println(x); }}正常情况下我们会将一个小数四舍五入之后保留原创 2021-12-12 01:00:00 · 498 阅读 · 0 评论 -
Java面向对象高级部分——包装类(二十五)
包装类:在java当中,提出一种思想,就是一切皆为对象,但是,我们之前学到的基础数据类型,并没有说是一个类或者是对象,那么在java当中为了解决这个问题,对8种基础数据类型提供了8种包装类。 基础数据类型 对应的包装类 int Integer char ...原创 2021-12-11 03:00:00 · 285 阅读 · 0 评论 -
Java面向对象高级部分——String字符串的使用的规则(二十四)
字符串的比较:之前基本数据类型都可以使用==去进行值的比较,那么String是怎么比较的?package obc14;public class OopDemo02 { public static void main(String[] args) { String str1 = "abc"; String str2 = new String("abc"); System.out.println("str1==str2"+(str1==str2)); }}通过以上的程序原创 2021-12-10 16:57:25 · 338 阅读 · 0 评论 -
Java面向对象高级部分——String类(二十三)
String类:本身是一个类public final class Stringextends Objectimplements Serializable, Comparable<String>, CharSequence观察String类的定义,发现这是一个太监类,他没有子类,同时String类还实现了三个接口,其中Serializable(可序列化)接口是一个很关键的接口,在网络传输中,这是起到非常大作用的一个接口。String类的两种实例化方式:·通过n...原创 2021-12-09 18:32:38 · 202 阅读 · 0 评论 -
Java面向对象高级部分——Matcher类(二十二)
Matcher:主要用于进行正则的匹配,通过Pattern类中定义的正则规则去匹配字符串,并且还能为字符串进行替换或者验证。主要方法:进行正则表达式匹配:public boolean matches()替换全部方法:public StringreplaceAll(Stringreplacement)替换第一个匹配正则的字符串:public StringreplaceFirst(Stringreplacement)St...原创 2021-12-08 09:28:55 · 843 阅读 · 0 评论 -
Java面向对象高级部分——Pattern类(二十一)
Pattern类:此类包含了所有正则的内容这是正则操作中最重要的一个类,所有的正则规范都需要在这类当中进行定义,要使用到这个类,就需要获得此类的对象,观察一下(API),发现此类没有构造方法,那么该如何实例化呢。package obc13;import java.util.regex.Pattern;public class OopDemo03 { public static void main(String[] args) { String str = "sdf...原创 2021-12-07 10:49:57 · 297 阅读 · 0 评论 -
Java面向对象高级部分——正则表达式的使用(二十)
正则表达式:在java刚起步的时候,是没有正则表达式的,实在jdk1.4之后才加入到java当中的,如果要在1.4之前的版本使用正则表达式,就需要到Apache的网站上下载正则表达式的开发包,正则表达式在各个语言当中都是可以使用的,最早实在PHP当中开始使用并且获得了广泛的好评,主要作用就是用于一些比较复杂的字符串的验证。不使用正则表达式的情况:package obc13;public class OopDemo01 { public static void main(Strin原创 2021-12-06 15:46:07 · 410 阅读 · 0 评论 -
Java面向对象高级部分——异常的处理机制(十九)
异常的处理机制:Throws:用于抛出异常,在方法声明的时候就使用,表示将异常放到其他地方去处理,通常是指给上一级(上一段调用异常代码块的代码),如果main方法中抛出了异常,那么这异常就会交给JVM去处理。package obc12;public class ExceptionDemo03 { public static void main(String[] args) { try{ function(); }catch(Exception e){...原创 2021-12-05 16:43:17 · 233 阅读 · 0 评论 -
Java面向对象高级部分——异常(十八)
以下是java当中最简单的异常:package obc12;public class ExceptionDemo01 { public static void main(String[] args) { System.out.println(1/0); }}异常(exception):程序中出现错误,导致了程序中断执行。错误(error):编译时就会报的错误。异常的捕获:在java当中是使用try{}catch(){}来捕获异常。Try{ 可能原创 2021-12-04 22:56:06 · 185 阅读 · 0 评论 -
Java面向对象高级部分——接口(十七)
在java中我们使用interface来声明接口在接口当中只用抽象方法和常量public interface I{//常量//抽象方法}现在如果有一个抽象类,抽象类当中全部都是抽象方法和常量,那么就可以将这个抽象类定义成一个接口。接口的使用规则:·接口中的抽象方法可以省略abstract关键字,同时接口中的常量可以省略final。 ·接口的访问权限永远都是public,所以public也可以省略。·接口在程序中需要实现,也就是说接口的子类我...原创 2021-12-03 15:15:25 · 541 阅读 · 0 评论