
java高级
EQ思凡
这个作者很懒,什么都没留下…
展开
-
2021-02-05
ServerSocket serverSocket = new ServerSocket(5000); Sock在这里插入代码片et socket = serverSocket.accept(); InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String info; while((info = br.readLine())!=null原创 2021-02-05 22:26:02 · 89 阅读 · 0 评论 -
java高级学习--网络编程
1、 什么是网络,什么是ip地址 IP地址 = 网络地址+主机地址 网络地址:标示计算机或网络设备所在的网段 主机地址:标识特定主机或网络设备 A类 B类 C类 D类:用于组播通信 E类:用于科研 前8位取值范围是 2、什么是协议 为了在网络中不同的计算机之间进行通讯而建立的规则,标准或约定的集合 -TCP/IP五层 物理层 数据链路层 网络层 传输层 应用层 ...原创 2021-02-04 20:27:21 · 165 阅读 · 1 评论 -
java高级--多线程共享数据
1、多线程共享数据 可能带来的问题:数据不安全 原因:多线程共同操作数据时,引发的冲突(如延时操作,操作未全部完成等等 ) 2、给线程加锁,同步方法 使用synchronized修饰的方法控制对类成员变量的访问(参数列表){ } synchronized访问修饰符,返回类型方法名(参数列表){} synchronized就是为当前的线程声明的一把锁 3、同步代码块也可以 多个并发线程访问同一个资源的同步代码块时 同一时刻只能有一个线程进入synchronized(this)同步代码块 当一原创 2021-02-04 12:27:27 · 229 阅读 · 0 评论 -
java高级学习--线程状态
1、线程状态 创建状态 就绪状态 阻塞状态 运行状态 死亡状态 public class Text implements Runnable{ @Override public void run() { // TODO Auto-generated method stub System.out.print("线程正在运行"); try { Thread.sleep(5000); System.out.print("线程休眠,处于阻塞状态!"); } catch (Inte原创 2021-02-04 11:57:33 · 92 阅读 · 0 评论 -
java高级--多线程初体验
1、主线程 main()方法即为主线程入口 产生其他子线程的线程 必须最后完成执行,因为他执行各种关闭动作 public static void main(String args[]) throws IOException, ClassNotFoundException{ //获取当前线程对象 Thread thread = Thread.currentThread(); //获取当前线程名字 String name = thread.getName(); System.out.pr原创 2021-02-04 00:14:18 · 163 阅读 · 0 评论 -
java高级学习--多线程概念
1、什么是多线程 1.1、进程 应用程序的执行实例 有独立的内存空间和系统资源 1.2、线程 cpu调度和分派的基本单位 执行运算的最小单位,可完成一个独立的顺序控制流程 1.3、多线程 如果在一个进程中同时运行了多个线程,用力完成不同的工作,则称之为多线程。 多个线程交替占用cpu资源,而非真正的并行执行 1.3.1、多线程的好处 充分利用cpu的资源,提升代码性能 简化编程模型,更好的软件设计和架构 带来良好的用户体验 ...原创 2021-02-03 23:38:38 · 75 阅读 · 0 评论 -
java高级--序列化
1、什么是序列化 简单来说就是讲java对象通过流的方式转换成二进制的字节序列 序列化是将对象的状态写入到特定的流中的过程 2、对象输出流ObjectOutputStream 结合FileOutputStream使用,实现对象的序列化 writeObject(Object) 3、序列化的步骤 实现Serializable接口 创建对象输出流 调用writeObject()方法将对象写入文件 关闭对象输出流 使用集合保存对象,可以讲集合中的所有对象序列化 序列化的前提是实体类必须实现impleme原创 2021-02-03 23:21:18 · 140 阅读 · 1 评论 -
java高级--读写二进制文件
DataInputStream dis = null; FileInputStream fis = null; try { fis = new FileInputStream("d:/author.jpg"); dis = new DataInputStream(fis); int temp; int i = 0; while((temp = dis.read())!=-1){ if(i<20){ Syste原创 2021-02-03 22:49:10 · 122 阅读 · 1 评论 -
java高级学习--IO字符流
1、为什么学习字符流 有人要说了既然字节流既可以读又可以写,为什么还要学习字符流,这就要涉及到编码问题了,因为有的文件是英文的,有的文件是中文的,所以在用字节流去读取的时候遇到中文或者其他非英文的语言的时候,难免会出现乱码,所以要学习字符流。 2、字符流 2.1、字符输入流 Reader类 基类 — FileReader类是Reader的孙子类 int read() int read(char[] c) int read(char[] c,int off,int len) void close().原创 2021-02-03 20:41:18 · 141 阅读 · 0 评论 -
java高级学习--IO流(一)
1、文件的相关操作 方法名称 说明 boolean exists() 判断文件或者目录是否存在 boolean isFile() 判断是否是文件 String getPath() 返回此对象表示的文件的相对路径名 String getAbsolutePath() 返回此对象的绝对路径 String getName() 返回此对象表示的文件或者目录名称 boolean delete() 删除此对象指定的文件或者目录 boolean createNewFile() 创建文原创 2021-02-02 13:23:22 · 132 阅读 · 0 评论 -
java高级学习--日期类
1、Date()类 位于java.util.Date 如何获取当前日期 java.util.Date类:表示日期和时间 Date date = new Date() 如何格式化日期 java.text.SimpleDateFormat类:用于定制日期时间的格式 Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String now = format.for原创 2021-02-02 10:50:35 · 84 阅读 · 1 评论 -
java高级学习--字符串的操作
1、String类 String类位于java.lang包中,具有丰富的方法 方法 作用 length() 返回字符串中的长度 equals() 比较两个字符串的内容是否相同(区分大小写) equalsIgnoreCase() 也是比较两个字符串是否相同,不区分大小写 toLowerCase() 将字符串转换成小写 toUpperCase() 将字符串转换成大写 indexOf(String value) 搜索第一个出现value的字符串,如果没有找到返回-1 l原创 2021-02-02 10:34:52 · 124 阅读 · 0 评论 -
java高级--Random类
Random random = new Random(); random.nextInt() random.nextInt(10)原创 2021-02-01 22:09:27 · 100 阅读 · 1 评论 -
java高级--Math类
Math常用方法 abs()求绝对值 max(100,,9) min(87,88) random()[0,1)原创 2021-02-01 21:10:27 · 87 阅读 · 1 评论 -
java高级--包装类
1、什么是包装类 包装类就是把基本类型数据转换成对象 每个基本类型在java.lang包中都有一个相应的包装类 2、包装类的作用 提供了一系列使用的方法 集合不允许存放进本数据类型数据,存放数字时,要用包装类型 3、包装类的使用 注意: Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该boolean对象表示为true,否则表示false 当Number包装类构造方法参数为String类型时,字符串不能为null,且该字符串必须可解析为相应的数原创 2021-02-01 21:05:01 · 177 阅读 · 0 评论 -
java高级--实用类介绍
1、枚举类型 枚举指由一组固定的常量组成的类型 枚举类型的代码书写原创 2021-02-01 20:20:08 · 110 阅读 · 0 评论 -
java高级--Collections方法
Collections 和 Collection不同,前者是集合的操作类,后者是 集合接口 Collections提供的常用静态方法 sort()//排序 binarySearch()//查找 max()\min()//查找最大或者最小 reverse()反转元素顺序 Collections.sort(list)对list进行排序(升序) Collections.max(list)集合中最大元素 Collections.min(list)集合中最小元素 Collections.binarySearch(.原创 2021-02-01 19:58:47 · 150 阅读 · 0 评论 -
java高级--泛型
1、jdk5以后使用泛型改写了集合中所有接口和类 泛型就是即将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性。原创 2021-02-01 19:37:38 · 86 阅读 · 0 评论 -
java高级--Map
存储类型 特点 Collection 不唯一,无序 Llist 不唯一,有序 Set 唯一,无序 1 、map的使用 Map countries = new HashMap(); countries.put("China","中国")//将数据存入到map中 countries.size()//获取map的数据长度 //获取map集合中特定的key对应的value,返回的数据是object类型,需要强制数据类型转换。 String country = (String)countr...原创 2021-02-01 19:28:57 · 220 阅读 · 0 评论 -
java高级--Set
1、Set接口 Set接口存储一组唯一,无序的对象 HashSet是Set接口常用的实现类 Set中存放对象的引用 2、Set接口如何判断加入对象是否已经存在呢? 在使用set存储对象时,set首先会采用equals()方法比较两个对象是否相等。 3、使用ste存储数据 Set set = new HashSet() set.add()//添加数据 set.size()//获取数据长度 for(Object obg : set){ News newObj = (News) obj; System.o原创 2021-02-01 16:57:20 · 322 阅读 · 1 评论 -
java高级学习--02List实现类
1、ArrayList ArrayList实现了长度可变的数组,在内存中非配连线的空间。遍历元素和随机访问元素的效率比较高 2、LinkedList LinkedList采用链表存储方式,插入,删除元素时效率比较高。 3、如何选择 ArrayList: 长度可变的数组 遍历元素和随机访问元素 LinkedList 链表存储方式 插入,删除元素 ...原创 2021-02-01 16:27:32 · 72 阅读 · 0 评论 -
java高级特性学习--01java集合框架
1、什么是数组? 数组是可以保存一组数据的一种护具结构,它本身会占用一个内存地址,因此数组也可以说是一种引用类型。 一个数组中只能保存一种类型的数据,可以使基本数据类型或者对象类型。不同类型的数据是不能存放到同一个数组中的。 数组的长度是固定的,少了坏事,多了浪费 数组的长度一旦固定,就不能修改,灵活性较差。 数组拥有边界检查,尝试获取不同数组范围内的值时,会抛出ArrayIndexOutOfBoundsExceptiony异常。(边界检查:边界检查就是在程序设计中在使用一个变量前,检查该变量是否处在一个原创 2021-01-30 22:09:56 · 274 阅读 · 1 评论