Java基础
李雨杨
永远要相信自己可以给这个世界留下文明
展开
-
菜单对应
//通过领域ID查询所有的菜单 public List<Title> queryTitles(int areaId);TitleService titleService=(TitleService)ServiceFactory.getServiceImpl(TitleService.class.getName()); //查找该领域下面所有的题目 List<Title> titleList =titleService.queryTitles(areaId);.原创 2020-07-31 07:11:25 · 155 阅读 · 0 评论 -
死锁
案例:两个人同时争取两个单个资源package thread;/** * 死锁:过多的同步可能造成相互不释放资源 * 从而相互等待,一般发生于同步中持有多个对象的锁 */public class DeadLock { public static void main(String[] args) { Makeup m1 = new Makeup(1, "李雨杨"); Makeup m2 = new Makeup(2, "李经来");原创 2020-06-23 20:02:01 · 433 阅读 · 0 评论 -
客户端写入数据,服务端读取数据并写入txt文件中
#服务端#客户端原创 2020-06-14 22:06:24 · 486 阅读 · 0 评论 -
线程池的使用
原创 2020-06-11 23:57:52 · 191 阅读 · 0 评论 -
set集合的两种遍历方式
#hash值,逻辑地址,不是真正的存储地址重写的tostring方法其实就是打印类名和16进制的逻辑哈希值,哈希值是一个十六进制的整数#############################################存储自定义元素哈希值相同,equals相同就认为是同一个元素,set集合就存储一个元素。这就是存储自定义元素重写hashcode和equals方法的原因。linkedhashset...原创 2020-06-11 21:24:06 · 540 阅读 · 0 评论 -
遍历map集合
1.使用keyset2.entry对象使用迭代器使用增强for循环原创 2020-06-11 15:59:23 · 92 阅读 · 0 评论 -
MySQL查询出所有重复元素
一.1)查询以单个字段为标准SELECT * FROM student WHERE shortname IN (SELECT shortname FROM student GROUP BY shortname HAVING COUNT(shortname)>1)//查找出所有的重复数据2)查看重复数据的条数SELECT shortname,COUNT(*) FROM student GROUP BY shortname HAVING COUNT(*) > 1//查看重复数据的条数原创 2020-06-06 08:38:54 · 470 阅读 · 0 评论 -
文件上传的原理(原理:文件的复制)
#文件上传#文件上传案例的阻塞问题:#模拟BS服务器分析:原创 2020-06-06 00:42:35 · 261 阅读 · 0 评论 -
TCP通信
#TCP、UDP的概念#tcp实现客户端与服务器客户端服务器端原创 2020-06-06 00:19:41 · 95 阅读 · 0 评论 -
线程状态+等待唤醒问题
#几种状态#生产者消费者/* 等待唤醒案例:线程之间的通信 创建一个顾客线程(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到WAITING状态(无限等待) 创建一个老板线程(生产者):花了5秒做包子,做好包子之后,调用notify方法,唤醒顾客吃包子 注意: 顾客和老板线程必须使用同步代码块包裹起来,保证等待和唤醒只能有一个在执行 同步使用的锁对象必须保证唯一原创 2020-05-25 17:05:40 · 187 阅读 · 0 评论 -
线程安全问题
多柜台买票案例:出现重复的票和不存在的票解决方法:1.同步代码块2.同步方法静态同步方法3.lock锁 使用步骤: 1.在成员位置创建一个ReentrantLock对象 2.在可能会出现安全问题的代码前调用Lock接口中的方法lock获取锁 3.在可能会出现安全问题的代码后调用Lock接口中的方法unlock释放锁 */public class RunnableImpl implemen原创 2020-05-25 16:34:48 · 155 阅读 · 0 评论 -
生产者消费者模型
生产者消费者模型是一个非常经典的多线程协作的模型,一个消费者,一个生产者。生产者生成的数据可以被两者都看到,是一个共享数据。生产者只需要生产数据,消费者只需要消费数据,两者之间相互解耦不需要关心对方的存在。有一个数据共享区域,当生产者生产数据超过共享区域大小的时候要阻塞,让生产者不要生产,消费者消费。当数据区域为空时,消费者线程阻塞。共享数据区source负责线程之间的通信(即什么时候该生产,什么时候该通信)。package thread;import java.util.LinkedList;原创 2020-05-25 08:47:22 · 230 阅读 · 1 评论 -
反射的案例
#反射:将类的各个组成部分封装为其他对象(反射机制)##反射的好处:1.可以在程序运行过程中,操作这些对象 e.g.当我们定义一个字符串的时候String str = "abc";在编译工具中我们通过str.的时候会调出很多该类的所有方 法。IDEA工具内部将字符串的字节码文件加载到内存,内存中有一个Class类对象,class类对象将所有方法放 ...原创 2020-05-22 22:17:59 · 285 阅读 · 0 评论 -
==、equals和hashcode
为什么要重写?new两个person对象,所有类都继承Object类,所以使用equals方法比较是是比较hashcode值。要想通过对象中的变量值比较就必须重写比较方法。package javase.hashcodeequals;public class Person { private String name; private String icard; public Person(String name, String icard) {原创 2020-05-21 23:59:46 · 142 阅读 · 0 评论 -
IO
package com.itheima.demo01.OutputStream;import java.io.FileOutputStream;import java.io.IOException;/* java.io.OutputStream:字节输出流 此抽象类是表示输出字节流的所有类的超类。 定义了一些子类共性的成员方法: - public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 ...原创 2020-05-21 20:32:37 · 123 阅读 · 0 评论 -
Collections集合工具类实现对集合元素排序
#java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下: public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。 注意: sort(List<T> list)使用前提 被排序的集合里边存储的元素,必须实现Comparable,重写接口中的方法compareTo定义排序的规则 对自定义类...原创 2020-05-17 21:58:13 · 295 阅读 · 0 评论