Java
Jackyyl729
这个作者很懒,什么都没留下…
展开
-
1.两数之和-leetcode
一,暴力求值,两层for循环class Solution { public int[] twoSum(int[] nums, int target) { int len = nums.length - 1; for (int i = 0; i <= len; i++) { for (int j = i + 1; j <= len; j++) { if (target == (nums[j] + nums[i])) { return new int[原创 2021-06-03 09:55:12 · 81 阅读 · 0 评论 -
Springboot链式写法@Accessors(chain = true)
链式写法: Dept dept = new Dept(); dept.setDeptNo(11).setDname('ssss').setDb_source('001');使用方法:@Data@NoArgsConstructor@Accessors(chain = true) //链式写法public class Dept implements Serializable {在实体类上面使用注解@Accessors(chain = true),就可以实现链式写法了...原创 2021-05-19 14:52:58 · 2164 阅读 · 0 评论 -
为什么redis6.0之后又改为多线程
在 Redis 中,单线程的性能瓶颈主要在网络IO操作上。也就是在读写网络的read/write系统调用执行期间会占用大部分CPU时间。如果要对一些大的键值对进行删除操作的话,在短时间内是删不完的,那么对于单线程来说就会阻塞后边的操作。Redis6.0的多线程是指,将网络数据读写和协议解析通过多线程的方式来处理,对于命令执行来说,仍然使用单线程操作。也就是说,Redis6.0的多线程是为了解决其网络IO的瓶颈。...原创 2021-05-18 17:16:41 · 511 阅读 · 0 评论 -
Tomcat怎么打破双亲委派机制的
一.首先我们说一下什么是双亲委派机制双亲委派模型的工作过程是:如果一个类加载器收到了类加载的请求,他首先不会自己去尝试加载这个类,而是把这个请求委派父类加载器去完成。每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个请求(他的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去加载。为什么要使用双亲委派机制如果没有使用双亲委派模型,由各个类加载器自行加载的话,如果用户自己编写了一个称为java.lang.Object的类,并放在程转载 2021-05-18 17:11:29 · 1382 阅读 · 0 评论 -
分表之后如何保证ID唯一性
单库的时候,主键唯一ID是自增的,现在好了,我们的数据被分到多个库的多个表里面了,如果我们还是使用之前的主键自增策略,那么这样就会出现两个数据插入到了两个不同的表会出现相同的ID值,这时我们该怎么去使用呢?提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的原创 2021-05-18 16:07:18 · 1275 阅读 · 0 评论 -
mysql索引理解
一.索引索引:索引是数据结构。可以简单理解为排好序的快速查找数据结构索引的数据结构:二叉树(树的不平衡导致查找效率超级低)红黑树(虽然树平衡了,但树的度为 2,导致树的高度很高,需进行多次 I/O)Hash 表(虽然好,但不适合范围查找)B-Tree(虽然好,但不适合范围查找)B+Tree(这才是大佬)select *from t where col2=89 查询语句的执行过程如果没有建立索引,MySQL 会进行全表扫描,逐行查找假设我们使用二叉树承载了表的索引,该二叉原创 2021-04-18 17:20:05 · 123 阅读 · 0 评论 -
SpringBoot拿不到yml中自定义属性
SpringBoot拿不到yml中自定义属性一.如果配置文件中有相关定义,但是启动依然报错。这是因为生成的Class文件中配置没有及时被更新。直接删除项目中的target文件(之后会自动生成)再重新运行项目就可以解决。...原创 2021-04-11 21:13:43 · 1037 阅读 · 0 评论 -
Springboot保存日志文件到本地
1.首先在yml文件中配置(我们对打印日志的配置) (springboot有相关的包,所以我们不用引入依赖)logging: level: root: info(日志级别) config: classpath:logback-spring.xml (配置文件路径) 日志文件的本地保存路径我在logback-spring.xml中配置(下面代码)2.我们在src/main/resources中创建一个logback-spring.xml下方我用<-**************原创 2020-12-14 21:21:33 · 1151 阅读 · 0 评论 -
Java使用Validation进行参数校验
一.不用springboot,使用validation参数校验需要自己写ValidationUtil工具类,来校验public class ValidatorUtil { private static Validator validator = Validation.buildDefaultValidatorFactory() .getValidator(); public static <T> Map<String,St原创 2020-12-13 19:14:56 · 1730 阅读 · 0 评论 -
利用Java Socket编写一个简单的Web服务器
1-2 利用Java Socket编写一个简单的Web服务器,具体如下:(1)、使用 ServerSocket 监听某一端口,然后等待连接获取 Socket对象;(2)、创建一个类 HttpServer 继承 java.lang.Thread 类,重写 run()方法,执行浏览器请求;(3)、获得浏览器请求,解析资源文件路径;(4)、读取资源文件,响应给浏览器;(5)、浏览器地址栏输入: http://localhost:8000/index.html;(6)、效果如下:代码:启动类pu原创 2020-11-23 22:03:25 · 5610 阅读 · 18 评论 -
假设Tom和Jerry利用Java UDP进行聊天
1-1 假设Tom和Jerry利用Java UDP进行聊天,请为他们编写程序。具体如下:(1)、Tom和Jerry聊天的双方都应该具有发送端和接收端;(2)、利用DatagramSocket与DatagramPacket;(3)、实现 java.lang.Runnable类,重写 run()方法。Jerry代码:public class UDPSocket_Jerry { public class UDPSocket_Jerry { public static void main(S原创 2020-11-23 21:58:35 · 7682 阅读 · 32 评论 -
Java如何创建一个文件对象
1.创建文件的3种方法1.File(String filename)2.File(String directoryPath,String filename)3.File(File dir,String filename)其中filename是文件名字,directoryPath是文件的路径,dir为一个目录。用File(String filename)创建文件时,被默认为当前应用再同一目录。2.操作案例: String path= "E:\\yuchao\\测试";//所创建文件的路径原创 2020-11-05 09:03:32 · 1885 阅读 · 0 评论 -
反射的作用及意义
1.反射的定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制。反射的应用场合:在编译时根本无法知道该对象或类可能属于哪些类,程序只依靠运行时信息来发现该对象和类的真实信息.在运行阶段使用,不能写死;工厂模式,动态生成对象;框架底层;运行过程中修改jar包中的一些内容(由于反射会额外消耗一定的系统资源,因此如果不需要动态地创建一个对象,那么就不需要用反射原创 2020-11-05 08:51:28 · 5332 阅读 · 1 评论 -
Java线程停止与中断方法的区别
public final void stop(): 让线程停止,方法过失了,但还可以用public void interrupt(): 中断线程,并抛出InterruptedException,程序正常结束实验代码public class ThreadSleepDemp { public static void main(String[] args) { ThreadStop ts = new ThreadStop(); ts.start(); .原创 2020-10-30 11:21:00 · 346 阅读 · 0 评论 -
Java启动线程(Thread)的两种方法
第一种 :继承Thread类(Thread实现Runnable接口)用继承类创建对象然后使用使用代码(案例:多个窗口卖票)这里用SellTicket extends Thread,然后通过SellTicket创建对象,使用线程方法。public class SellTicketDemo { public static void main(String[] args) { // 创建三个线程对象 SellTicket st1 = new SellTick原创 2020-10-30 11:04:12 · 1285 阅读 · 0 评论 -
Main 方法中使用 Thread.sleep()方法
## 一 sleep()方法使用的位置,如果使用在main线程执行代码中,则阻塞的是main线程。如果在其他线程执行的代码中,则阻塞的是执行这些代码的线程。## 二 所以一般在继承或者实现的run方法内使用sleep。...原创 2020-10-30 10:40:26 · 1090 阅读 · 0 评论 -
Java Thread之Sleep()
一.sleep API介绍sleep()方法是Thread类的静态方法,哪个线程调用了这个sleep方法,哪个线程就休眠sleep设置的时间。线程睡眠到期自动苏醒,并返回到可运行状态(就绪),不是运行状态。二.sleep使用方法public class ThreadSleep extends Thread { @Override public void run(){ for (int x = 0; x < 3; x++) { System原创 2020-10-30 10:37:56 · 487 阅读 · 0 评论 -
Java调用python脚本
Java调用python脚本1.java调用python脚本需要运行python的基本环境2.Process process = Runtime.getRuntime().exec(cmdArr);在java代码中使用上述代码调用python脚本即可,其中cmdArr相当于在cmd调用python脚本时的指令。3.其原理是建立一个新的进程来运行python代码。4.cmdArr是以字符串数组的形式。实例代码public static void main(String[] args) thro原创 2020-10-27 13:33:49 · 703 阅读 · 1 评论 -
HashMAp与ConcurrentHashMap的比较
HashMAp与ConcurrentHashMap的比较1.Hashmap是一个散列表,它存储的内容是键值对(key-value)映射。不支持线程同步,不是线程安全的。在高并发环境下做插入操作,有可能出现环形链表。2.避免HashMap线程安全的问题有很多办法,比如hashtable collections synchronizedmap,但是这些方法都是给整个结合加锁,使他们不能同时访问,同一时间其他的访问会阻塞。concurrenthashmap能兼顾线程安全和运行效率。3.可以说,Concur原创 2020-10-27 09:39:36 · 579 阅读 · 1 评论