
Java
文章平均质量分 53
编程语言
lewjin
这个作者很懒,什么都没留下…
展开
-
Java虚拟机(JVM)
面试常问请你谈谈你对JVM的理解? java8虚拟机和之前的变化更新?什么是OOM,什么是栈溢出StackOverFlowError? 怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取,怎么分析Dump文件?谈谈JVM中,类加载器你的认识1、JVM体系结构99%的JVM调优都是在堆中,Java栈、本地方法栈、程序计数器是不会有垃圾存在的。2、类加载器类加载器负责加载所有的类,其为所有被载入内存中的类生成一个java.lang.Class实例对象。一旦一个类被加载如JVM中,同一转载 2022-03-02 21:31:12 · 327 阅读 · 0 评论 -
Java:UDP多线程实现在线聊天
TalkSend类package chat;import java.io.*;import java.net.*;/** * Create with IntelliJ IDAE * * @Author: JINLEI **/public class TalkSend implements Runnable{ DatagramSocket socket = null; BufferedReader reader = null; private int from原创 2022-02-24 00:04:25 · 143 阅读 · 0 评论 -
网络编程:TCP实现文件上传
客户端package internet;import java.io.*;import java.net.InetAddress;import java.net.Socket;/** * Create with IntelliJ IDAE * * @Author: JINLEI * @Description: * @Date: 2022/2/23 * @Time: 19:34 **///文件上传 客户端public class TcpClientDemo2 { pub原创 2022-02-23 22:20:07 · 138 阅读 · 0 评论 -
Java:注解和反射
(一)注解1注解入门Annotation是jdk1.5开始引入的新技术。Annotation的作用:(1)不是程序本身,可以对程序作出解释;(2)可以被其他程序(例如编译器)读取。Annotation的格式“@注解名”,也可以带参数,例如:@SuppressWarnings(value=“unchcked”)Annotation在哪里使用?可以附加在package、class、method、field上,相当于给它们添加了额外的辅助信息,还可以通过反射机制编程实现对这些元数原创 2022-02-23 00:41:53 · 2097 阅读 · 3 评论 -
JAVA : JDK 1.8 API 帮助文档
链接:添加链接描述提取码:n494原创 2022-02-17 23:38:36 · 782 阅读 · 0 评论 -
Java多线程:解决生产者/消费者模式
什么是生产者/消费者模式生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品。具体来说就是:生产者生产数据到缓冲区中,消费者从缓冲区中取数据。如果缓冲区已经满了,则生产者线程阻塞。如果缓冲区为空,那么消费者线程阻塞。管程法(利用缓冲区)public class TestPc { public static void main(String[] args) { SynCon原创 2022-02-17 22:34:53 · 198 阅读 · 0 评论 -
Java多线程:线程状态
新建状态(New):新创建了一个线程对象。就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞情况分为三种:(1)等待阻塞.转载 2022-02-17 18:17:11 · 352 阅读 · 0 评论 -
Java多线程:线程休眠
线程休眠注意点sleep(时间)指定当前线程阻塞的毫秒数sleep存在异常InterruptedExceptionsleep时间达到后线程进入就绪状态sleep可以模拟网络延时,倒计时等每个对象都有一个锁,sleep不会释放锁线程休眠实例//模拟网络延时:放大问题的发生性public class TestSleep implements Runnable{ //票数 private int ticketNums = 10; @Override publ原创 2022-02-17 17:07:28 · 970 阅读 · 0 评论 -
Java多线程:线程停止
线程停止的注意点不推荐使用JDK提供的stop()、destroy()方法(已废弃)推荐线程自己停下来,利用次数,不建议死循环建议使用一个标志位进行终止变量,当flag=false终止线程运行线程停止实例/** * Create with IntelliJ IDAE * * @Description: 线程终止 **/public class TestStop implements Runnable{ //1、设置一个标志位 private boolean flag原创 2022-02-17 16:38:46 · 340 阅读 · 0 评论 -
Java多线程:Lambda 表达式
什么是Lambda 表达式Lambda 表达式,也可称为闭包,它是Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。Lambda表达式的重要特征可选类型声明:不需要声明参数类型,编译器可以统一识别参数值可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号可选的大括号:如果主体包含了一个语句,就不需要使用大括号可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动原创 2022-02-16 22:45:06 · 1310 阅读 · 0 评论 -
Java多线程:静态代理模式
静态代理模式要求:有真实角色,代理角色真实角色和代理角色要实现同一个接口代理角色要持有真实角色的引用设计静态代理模式(1)必须有一个共同使用的接口1 // 共同的接口2 public interface Proxy {3 public abstract void todo();4 }(2)代理角色和真实角色共同实现该接口,代理角色实现需要的功能。// 真实角色class RealityRole implements Proxy { @Override原创 2022-02-16 01:21:16 · 139 阅读 · 0 评论 -
关于抽象类与接口的理解
抽象类:含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。接口(interface):可以说成是抽象类的一种特例,接口中的所有方法都必须原创 2021-10-09 11:10:02 · 540 阅读 · 0 评论 -
try、catch和finally中都有return语句的情况
测试代码:public static int WithException(){ int i=10; try{ System.out.println("i in try block is : "+i); i = i/0; return --i; } catch(Exception e){ System.out.println("i in catch - form try block is : "+i); --i; System.out.println("i in catch原创 2021-10-09 10:36:26 · 2011 阅读 · 0 评论 -
数据结构(Java)-哈希表
哈希表1. 基本概念哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方,说起来可能感觉有点复杂,我想我举个例子你就会明白了,最典型的的例子就是字典,大家估计小学的时候也用过不少新华字典吧,如果我想要获取“按”字详细信息,我肯定会去根据拼音an去查找 拼音索引(当然也可以是偏旁索引),我们首先去查an在字典的位置,查了一下得到“安”,结果如下。这过程就是键码映射,在公式里面,就是通过key去查找f(key)。其中,按就是关键字(key),f()就是字典索引,也就是转载 2021-07-16 16:24:54 · 138 阅读 · 0 评论 -
Java-二叉树
1、树形结构1.1、概念 *树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树 。1.2、概念 ***节点的度: 一个节点含有的子树的个数称为该节点的度;树的度: 一棵树中,最大的节点的度称为树的度;**叶子节点或终端节点:**度为0的节点称为叶节点;双亲节点或父节点: 若一个节点含有子节转载 2021-05-08 15:26:02 · 98 阅读 · 0 评论 -
Java-栈和队列
1.栈(Stack)1.1 什么是栈?栈: 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守先进后出的原则。压栈: 栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈: 栈的删除操作叫做出栈。出数据在栈顶。1.2 实现栈利用顺序表实现,即使用尾插 + 尾删的方式实现(简单)利用链表实现,则头尾皆可参考代码:public class MyStack { // 此处不考虑扩容问题了 private原创 2021-04-18 10:31:58 · 245 阅读 · 2 评论 -
SpringBoot-拦截器和文件上传
1、拦截器1.1、HandlerInterceptor 接口/** * 登录检查 * 1、配置好拦截器要拦截哪些请求 * 2、把这些配置放在容器中 */@Slf4jpublic class LoginInterceptor implements HandlerInterceptor { /** * 目标方法执行之前 * @param request * @param response * @param handler * @retu原创 2021-03-15 09:27:13 · 475 阅读 · 0 评论