自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Java单例设计模式

饿汉式方式一:直接实例化饿汉式(简洁直观)class Singleton1 { private static final Singleton1 INSTANCE = new Singleton1(); private Singleton1(){ }}方式二:枚举式(最简洁)enum Singleton2{ INSTANCE;}方式三:静态代码块饿汉式(适合复杂实例化)class Singleton3{ public static final Si

2022-03-15 21:31:26 354

原创 Java-----URL网络编程

1.URL:统一资源定位符,对应着互联网的某一资源地址2.格式:http://localhost:8080/examples/beauty.jpg?username = Tom协议 主机名    端口号      资源地址                    参数列表 public static vo

2022-03-06 00:25:27 127

转载 Java------UDP协议的网络编程

//发送端 @Test public void sender() throws Exception { DatagramSocket socket = new DatagramSocket(); String str = "我是UDP方式发送的导弹"; byte[] data = str.getBytes(); InetAddress inet = InetAddress.getLocalHost(); ...

2022-03-06 00:18:49 73

原创 Java------实现TCP的网络编程

例子1:客户端发送信息给服务端,服务端将数据显示在控制台上例子2:客户端发送文件给服务端,服务端将文件保存在本地。例子3:从客户端发送文件给服务端,服务端保存到本地。并返回“发送成功”给客户端。并关闭相应的连接。例子1:客户端发送信息给服务端,服务端将数据显示在控制台上 //客户端 @Test public void client() { Socket socket = null; OutputStream os = null; .

2022-03-06 00:17:38 224

转载 Java网络编程

一、网络编程中有两个主要问题:1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用2.找到主机后如何可靠高效地进行数据传输二、网络编程中的两个要素:1.对应问题一:IP和端口号2.对应问题二:提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)三、通信要素一:IP和端口号1.唯一的标识 Internet 上的计算机(通信实体)2.在Java中使用InetAddress类代表IP3.IP分类:IPv4 和 IPv6; 万维网 和 局域网4.域名: w

2022-03-06 00:09:29 61

原创 Java-------随机存取文件流

RandomAccessFile的使用1.RandomAccessFile直接继承于java.lang.Object类,实现了DataInput和DataOutput接口2.RandomAccessFile既可以作为一个输入流,又可以作为一个输出流3.如果RandomAccessFile作为输出流时,写出到的文件如果不存在,则在执行过程中自动创建;如果写出到的文件存在,则会对原有文件内容进行覆盖。(默认情况下,从头覆盖)4.可以通过相关的操作,实现RandomAccessFile“插入”数据的效果

2022-03-06 00:02:08 202

原创 Java-----对象流

对象流的使用:1.ObjectInputStream 和 ObjectOutputStream2.作用:用于存储和读取基本数据类型数据或对象的处理流。它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。3.要想一个java对象是可序列化的,需要满足相应的要求。见Person.javaPerson需要满足如下的要求,方可序列化1.需要实现接口:Serializable2.当前类提供一个全局常量:serialVersionUIDpublic static final

2022-03-05 23:59:07 1073

原创 Java-------IO流

测试FileReader和FileWriter测试FileInputStream和FileOutputStream处理流之一:缓冲流的使用处理流之二:转换流的使用其他流的使用一、流的分类1.操作数据单位:字节流、字符流2.数据的流向:输入流、输出流3.流的角色:节点流、处理流二、流的体系结构1.抽象基类:InputStreamOutputStream ReaderWriter2.节点流(或文件流):FileInputStream ( read(byte[] buffer) ).

2022-03-05 23:46:12 77

原创 Java-------File类的使用

File类的使用:1.File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)2.File类声明在java.io包下3.File类中涉及到关于或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。4.后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的“终点”。如何创建File类的实例File(String filePath)File(String parentPath, Stri

2022-03-05 23:01:27 258

原创 Java泛型的使用

如何自定义泛型结构:泛型类、泛型接口;泛型方法public class Order<T> { String orderName; int orderId; //类的内部结构就可以使用类的泛型 T orderT; public Order(){ //编译不通过// T[] arr = new T[10]; //编译通过 T[] arr = (T[])new Object[10];

2022-02-11 21:35:06 103

原创 Java泛型

1.jdk5.0新增的特性2.在集合中使用泛型①集合接口或集合类在jdk5.0时都修改为带泛型的结构。②在实例化集合类时,可以指明具体的泛型类型。③指明完以后,在集合类或接口中凡是定义为类或接口时,内部结构(比如:方法、构造器、属性等)使用到类的泛型的位置,都指定为实例化的泛型类型。比如:add(E e) -----> 实例化以后:add(Integer e)④注意点:泛型的类型必须是类,不能是基本数据类型。需要用到基本数据类型的位置,拿包装类替换。⑤如果实例化时,没有指明泛型的类型,默

2022-02-11 21:17:23 65

原创 Java----- Collections工具类

排序操作:(均为static方法)reverse(List):反转 List 中元素的顺序shuffle(List):对 List 集合元素进行随机排序sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处元素进行交换查找、替换Object max(Coll

2022-02-10 01:39:10 92

原创 Java----Map的实现类的结构

Map的实现类的结构:----Map接口:双列集合,用来存储 key-value对的数据 —>高中函数:y = f(x)   ----HaspMap:作为Map的主要实现类;线程不安全的,效率高;可以存储null的key和value       ----LinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。          原因:在原有的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素。对于频繁的遍历操作,此类执行效率高于HashMap。

2022-02-10 01:36:00 268

原创 Java----Set接口的框架

1.Set接口的框架:----Collection接口:单列集合,用来存储一个一个的对象   ----Set接口:存储无序的、不可重复的数据。 —>高中讲的“集合”       ----HashSet:作为Set接口的主要实现类;线程不安全的:可以存储null值         ----LinkedHashSet:作为HashSet的子类;遍历其内部数据时,可以按照添加的顺序遍历;在添加数据的同时,每个数据还维护了两个引用,记录此数据前一个数据和后一个数据;对于频繁的遍历操作,Linke

2022-02-10 01:18:18 375

原创 Java----List接口中的常用方法

void add(int index, Object ele):在index位置插入ele元素boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来Object get(int index):获取指定index位置的元素int indexOf(Object obj):返回obj在集合中首次出现的位置int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置Object r

2022-02-10 01:02:12 149

原创 Java-----List接口的框架

List接口的框架:ArrayList的源码分析:LinkedList的源码分析:Vector的源码分析:List接口的框架:----Collection接口:单列集合,用来存储一个一个的对象   ----List接口:存储有序的、可重复的数据。 —>“动态”数组      ----ArrayList:作为List接口的主要实现类;线程不安全的,效率高;底层使用Object[] elementData存储      -----LinkedList:对于频繁的插入、删除操作,使用此类.

2022-02-10 00:55:24 68

原创 Java-----foreach循环

jdk5.0 新增了foreach循环,用于遍历集合、数组 @Test public void test1() { Collection coll = new ArrayList(); coll.add(123); coll.add(456); coll.add(new Person("Jerry", 20)); coll.add(new String("Tom")); coll.add(false);

2022-02-10 00:40:24 66

原创 Java集合框架概述

集合框架的概述集合框架Collection接口方法Iterator迭代器接口集合框架的概述1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt / .jpg / .avi / 数据库中)。2.1 数组在存储多个数据方面的特点:①一旦初始化以后,其长度就确定了。②数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。比如:String[] arr; int[] arr1; Object.

2022-02-10 00:33:43 165

原创 Java比较器

说明:Java中的对象,正常情况下,只能进行比较:== 或 != 。不能使用 > 或 < 的。但是在开发环境中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。如何实现?使用两个接口中的任何一个:Comparable 或 ComparatorComparable接口的使用举例:自然排序1.像String、包装类等实现了Comparable接口,重写了compareTo()方法,给出了比较两个对象大小的方式。2.像String、包装类重写compareTo()方法以后,进行了从

2022-02-07 20:06:34 63

原创 Java----JDK8中新日期时间API

LocalDate、LocalTime、LocalDateTime的使用Instant的使用DateTimeFormatter:格式化或解析日期、时间LocalDate、LocalTime、LocalDateTime的使用说明:1.LocalDateTime相较于LocalDate、LocalTime,使用频率要高2.类似于Calendar @Test public void test1(){ //now():获取当前的日期、时间、日期+时间 Loc.

2022-02-07 19:47:27 87

原创 Java----- JDK8之前日期时间API

1. System类中currentTimeMillis()2. java.util.Date和子类java.sql.Date3. SimpleDateFormat的使用4. Calendar日历类(抽象类)的使用1. System类中currentTimeMillis() @Test public void test1(){ long time = System.currentTimeMillis(); //返回当前时间与1970年1月1日0时0分0秒之.

2022-02-07 17:14:49 82

原创 Java------String练习题

面试题public class StringTest { String str = new String("good"); char[] ch = { 't', 'e', 's', 't' }; public void change(String str, char ch[]) { str = "test ok"; ch[0] = 'b'; } public static void main(String[] args)

2022-02-07 16:25:11 642

原创 Java-----关于StringBuffer和StringBuilder的调用

String、StringBuffer、StringBuilder三者的异同?String:不可变的字符序列;底层使用。StringBuffer:可变的字符序列;线程安全的,效率低。StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全,效率高。源码分析:String str = new String();//char[] value = new char[0];String str1 = new String(“abc”);//char[] value = new char

2022-02-07 16:11:00 165

原创 Java-----String类与其他结构之间的转换

String 与 基本数据类型、包装类之间的转换String --> 基本数据类型、包装类:调用包装类的静态方法:parseXXX(str)基本数据类型 --> String:调用String重载的valueOf(xxx) 或 连接运算 @Test public void test1(){ String str1 = "123"; int num = Integer.parseInt(str1); String str2 =

2022-02-07 15:46:12 168

原创 Java-----String常用方法

String常用方法1 int length():返回字符串的长度: return value.length char charAt(int index): 返回某索引处的字符return value[index] boolean isEmpty():判断是否是空字符串:return value.length == 0 String toLowerCase():使用默认语言环境,将 String 中的所有字符转换为小写 String toUpperCase():使用默认语言环境,将 St

2022-02-07 15:34:38 71

原创 Java----String类

String类String:字符串,使用一对""引起来表示。String的实例化字符串拼接的特性String:字符串,使用一对""引起来表示。1.String声明为final的,不可被继承。2.String实现了Serializable接口:表示字符串是支持序列化的;实现了Comparable接口:表示String可以比较大小。3.String内部定义了final char[] value用于存储字符串数据。4.String:代表不可变的字符序列。简称:不可变性。体现:1)当对字符串重新赋值时,

2022-02-07 15:14:33 53

原创 Java设计模式-----单例设计模式

单例设计模式饿汉式懒汉式概念:所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。饿汉式class Bank{ //1.私有化类的构造器 private Bank() { } //2.内部创建类的对象 //4.要求此对象也必须声明为静态的 private static Bank instance = new Bank(); //3.提供公共的静态的方法,返回类的对象 public stat

2022-02-05 20:31:07 73

原创 Java线程的通信

线程的通信问题的引入:生产者/消费者问题问题的引入:使用两个线程打印 1-100。线程1,线程2交替打印。涉及到的三个方法:wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。notify():一旦执行此方法,就会唤醒wait的一个线程。如果有多个线程被wait,就唤醒优先级高的那个。notifyAll():一旦执行此方法,就会唤醒所有被wait的线程。说明:1.wait(),notify(),notifyAll()三个方法必须使用在同步代码块或同步方法中。2.wai

2022-02-05 19:24:47 57

原创 Java多线程同步

线程同步方式一:同步代码块方式二:同步方法方式三:Lock锁(JDK5.0新增)问题引入:创建三个窗口卖票,总票数为100张。使用实现Runnable接口的方式1.问题:卖票过程中,出现了重票、错票 ---->出现了线程的安全问题2.问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操作车票。3.如何解决:当一个线程在操作ticket的时候,其他线程不能参与进来。直到线程a操作完ticket时,其他线程才开始操作ticket。这种情况即使线程a出现了阻塞,也不能

2022-02-05 18:55:53 140

原创 Java创建多线程的四种方式

Java多线程创建多线程的4种方式1. 继承Thread类的方式2. 实现Runnable接口的方式3. 实现Callable接口的方式(JDK5.0新增)4. 使用线程池的方式(JDK5.0新增)创建多线程的4种方式1. 继承Thread类的方式①创建一个继承于Thread类的子类②重写Thread类的run() ------>将此线程执行的操作声明在run()中③创建Thread()类的子类的对象④通过此对象调用start()注:①如果自己手动调用run()方法,那么就只是

2022-02-05 17:46:20 764

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除