Java EE

Java中守护线程和本地线程区别,这特么太重要了!

早过忘川 提交于 2020-08-06 10:11:04
1.Java中守护线程和本地线程区别 java中的线程分为两种:守护线程(Daemon)和用户线程(User)。 任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(bool on);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在Thread.start()之前调用,否则运行时会抛出异常。 两者的区别: 唯一的区别是判断虚拟机(JVM)何时离开,Daemon是为其他线程提供服务,如果全部的User Thread已经撤离,Daemon 没有可服务的线程,JVM撤离。也可以理解为守护线程是JVM自动创建的线程(但不一定),用户线程是程序创建的线程;比如JVM的垃圾回收线程是一个守护线程,当所有线程已经撤离,不再产生垃圾,守护线程自然就没事可干了,当垃圾回收线程是Java虚拟机上仅剩的线程时,Java虚拟机会自动离开。 扩展:Thread Dump打印出来的线程信息,含有daemon字样的线程即为守护进程,可能会有:服务守护进程、编译守护进程、windows下的监听Ctrl+break的守护进程、Finalizer守护进程、引用处理守护进程、GC守护进程。 2.线程与进程的区别 进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元。 一个程序至少有一个进程,一个进程至少有一个线程。 3

springboot的webapp和app的pom配置文件,方便复制

雨燕双飞 提交于 2020-08-06 09:00:37
一、Springboot-webapp的配置 taskweb--pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.1.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>com.imddysc</groupId> <artifactId>taskweb</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar<

nginx 策略生效的先后顺序

∥☆過路亽.° 提交于 2020-08-06 08:44:14
nginx 先后顺序匹配: location ~ /api/.*\.(jsp)$ { proxy_pass http://resins; } location ~ \.(jsp|jar|css|SIS|SISx|sis|sisx|dll|jad)$ { proxy_pass http://netsends; } 访问http://test.com/api/test.jsp则使用 resins。 如果: location ~ \.(jsp|jar|css|SIS|SISx|sis|sisx|dll|jad)$ { proxy_pass http://netsends; } location ~ /api/.*\.(jsp)$ { proxy_pass http://resins; } 访问http://test.com/api/test.jsp则使用 netsends。 ps: 匹配符优先级 1.= 2.空匹配符,满足精确匹配时 3.^~ 4.~或~* 5.空匹配符,满足以指定模式开始时的匹配时 来源: oschina 链接: https://my.oschina.net/u/4398177/blog/4317446

tomcat关于配置servlet的url-pattern的问题详解

给你一囗甜甜゛ 提交于 2020-08-06 08:13:23
目录 1 servlet url-pattern的匹配问题 1.1 精确匹配 1.2 路径匹配 1.3 后缀匹配 注意:路径和后缀匹配无法同时设置 2 url-pattern中/和/*的区别 3 url-pattern的优先级问题 4 根路径/的匹配问题 tomcat在配置web.xml的时候,servlet是一个比较重要的问题,在这里讨论一下servlet中的几个痛点 servlet url-pattern的匹配问题 url-pattern中 / 和 /* 的区别 url-pattern的优先级问题 根路径 / 的匹配问题 1 servlet url-pattern 的匹配问题 url-pattern 有三种匹配模式,分别是路径匹配、精确匹配、后缀匹配 1.1 精确匹配 <url-pattern> 中配置的项必须与url完全精确匹配。 代码举例👇 <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/kata/detail.html</url-pattern> <url-pattern>/demo.html</url-pattern> <url-pattern>/table</url-pattern> </servlet-mapping> 当在浏览器中输入如下几种url时

2020JAVA最新应对各种OOM代码样例及解决办法

廉价感情. 提交于 2020-08-06 07:52:09
引言 作者:黄青石 链接: https://www.cnblogs.com/huangqingshi/p/13336648.html?utm_source=tuicool&utm_medium=referral 周末了,觉得我还有很多作业没有写,针对目前大家对OOM的类型不太熟悉,那么我们来总结一下各种OOM出现的情况以及解决方法。   我们把各种OOM的情况列出来,然后逐一进行代码编写复现和提供解决方法。   1. 堆溢出-java.lang.OutOfMemoryError: Java heap space。   2. 栈溢出-java.lang.OutOfMemorryError。   3. 栈溢出-java.lang.StackOverFlowError。   4. 元信息溢出-java.lang.OutOfMemoryError: Metaspace。   5. 直接内存溢出-java.lang.OutOfMemoryError: Direct buffer memory。   6. GC超限-java.lang.OutOfMemoryError: GC overhead limit exceeded。    第一种 ,堆溢出异常,相信大家很常见。即堆内对象不能进行回收了,堆内存持续增大,这样达到了堆内存的最大值,数据满了,所以就出来了。我们直接放溢出的代码样例

最新阿里Java高频面试真题汇总(备战秋招)

早过忘川 提交于 2020-08-06 07:47:31
目录 : 技术一面(23问) 技术二面(3大块) JAVA开发技术面试中可能问到的问题(17问) JAVA方向技术考察点(33快) 项目实战(7大块) 必会知识(48点) 面试小技巧注意事项 1. 阿里技术一面 Java IO流的层次结构? 请说出常用的异常类型? SKU的全称是什么,SKU与SPU的区别及关系? FileInputStream在使用完以后,不关闭流,想二次使用可以怎么操作? 设计一个分步式登录系统? Spring加载过程? 自己有没有写过类似Spring这样的AOP事务? Java中 try..catch关闭流的语法糖? 如何设计一个秒杀系统?要考虑什么? 有没有遇到进线上GC,出现的症状是什么样的,怎么解决的? spring的加载过程? atomic与 volatile的区别? Thread的 notify给notifyAll的区别? notifiy是唤醒的那一个线程? Thread.sleep唤醒以后是否需要重新竞争? 单例有多少种写法?有什么区别?你常用哪一种单例,为什么用这种? 问一个Thread.join相关的问题? 商品相关模块系统怎么设计数据模型? 写一个JAVA死锁的列子? 如何解决死锁? GC回收算法,及实现原理? HashMap数据存储结构? key重复了怎么办?是如何解决的? Spring AOP的实现原理,底层用什么实现的? 2.

学生选课管理系统(Java语言期末前测试)

本小妞迷上赌 提交于 2020-08-06 07:07:38
测试具体要求: 2. 系统要求与功能设计 2.1 页面要求 (1)能够在Tomcat服务器中正确部署,并通过浏览器查看; (2)网站页面整体风格统一; (3)首页(登录页)要求实现不同用户登录后,进入的功能页不相同。 (4)教师功能页:有添加课程、修改个人信息、浏览选课学生信息三个模块。 (5)学生功能页:有修改个人信息、浏览课程信息、选课三个功能模块。 (5)管理员功能页:有添加教师信息、添加学生信息两个模块。 2.2 功能要求: (1)添加教师信息: 管理员可以添加教师基本信息,教师基本信息包括:教师工号(八位数字组成,例如02000081)、教师姓名、教师性别、教师所在学院、职称(教授、副教授、讲师、助教)组成; (2)添加学生信息: 管理可以添加学生基本信息,学生基本信息包括学号(八位数字组成,例如20180052)、学生姓名、学生性别、所在班级、所属专业组成; (3)添加课程信息: 教师登陆后,可以添加自己任职的课程基本信息,课程基本信息包括:课程编号(六位数字组成,例如050013),课程名称、选课人数、任课教师(任课教师不需录入,那位教师填写课程信息,那位教师就是任课教师); (4)修改个人信息: 教师或学生登陆后可以修改个人信息,但教师工号或学号不能修改,另外教师或学生只能修改自己的信息,无法看到或修改其他学生或教师的基本信息。 (5)浏览课程信息:

springBoot读取properties文件乱码

删除回忆录丶 提交于 2020-08-06 06:56:50
在使用idea进行springBoot测试时,读取properties文件里面的内容会中文乱码,可以设置文件的编码格式为utf-8 有时候可能全都设置完utf-8后还不好使,网上教程说可以清理一下idea缓存 但是测试后仍没有用 最后在properties文件上添加相关属性,比如springBoot的 spring.http.encoding.enabled=true 或者 server.servlet.encoding.enabled=true 根据相关项目进行配置编码后,就可以解决了。 来源: oschina 链接: https://my.oschina.net/u/4268886/blog/4321996

java的ssm框架整合(一)

怎甘沉沦 提交于 2020-08-06 05:18:18
目前 java 的三大框架整合比较热门的是 spring+springMVC+mybatis 。今天我使用 maven 来搭建 ssm 框架实现简单的增删改查。本人也是小白一枚,算是对自己的一次总结吧。大神们勿喷 …… 关于 maven 的使用,可以自行百度 ~~~~~~~~ 创建 maven 项目以及首次运行项目时暂时发现可能会遇到几个问题,在这里说明一下。 1. 创建 maven 项目后,只有 src/main/resource 这一个目录,正确的是三个类似这样的目录? 解决办法:右击项目名 -->Build Path-->configure Build Path…---> 找到 Libraries---> 然后双击弹出 Edit Library 框,选择 Alternate JRE -->finish--->ok 即可 2.maven 项目中的 jsp 文件报错,出现红叉? 解决办法:右击项目名 -->Build Path-->configure Build Path…---> 找到 Libraries---> 选择 Add Library…--> 选中 Server Runtime ---->next ---->Apache Tomcat v7.0 ---finish-->ok 即可 3. 将配置文件以及需要的 jar 包全部放入后,项目名报错,出现红叉? 解决办法