java
文章平均质量分 75
编程资源宝库
编程资源宝库是一个集合了各种编程资源的网站,包括编程教程、开发工具、代码示例、项目模板等。项目支持远程调试部署 运行安装 二次开发
展开
-
【java项目】基于SSM框架的仿微博系统:构建社交互动新平台(免费提供全套java开源项目源码)
随着社交网络的普及和用户需求的多样化,仿微博系统成为了满足用户社交互动需求的重要平台。基于SSM框架的仿微博系统应运而生,旨在为用户提供类似于微博的社交互动体验,包括发布动态、关注好友、评论互动等功能。基于SSM框架的仿微博系统为用户提供了一个新的社交互动平台,通过发布动态、关注好友等功能,实现了用户之间的交流互动。用户群体主要包括年轻人和社交活跃用户,他们可以通过系统发布动态、交流互动,丰富自己的社交圈子和社交经验。用户可以发布多种形式的动态内容,满足用户多样化的展示需求,增强用户之间的交流互动性。原创 2024-05-08 14:33:24 · 386 阅读 · 0 评论 -
【java项目】基于spring boot-jpa-thmleaf的旅游网站系统项目(免费提供全套java开源项目源码)
源码免费下载地址如下:【免费】基于springboot-jpa-thmleaf的旅游网站系统项目(免费赠送源码)资源-CSDN文库该旅游网站系统项目源于对旅游行业的数字化需求,旨在为用户提供便捷的旅游信息查询、景点预订和订单管理服务。主要功能包括用户注册登录、景点信息展示、订单管理等,旨在提升用户体验和管理效率。用户管理模块:实现用户注册、登录、个人信息管理等功能。通过Spring Security实现用户权限控制和安全认证。景点信息管理模块:提供景点信息的展示和查询功能,包括景点介绍、图片展示等原创 2024-05-07 11:20:44 · 424 阅读 · 0 评论 -
单点登录技术方案
分布式系统要实现单点登录,通常将认证系统独立抽取出来,并且将用户身份信息存储在单独的存储介质,比如:MySQL,Redis,考虑性能要求,通常存储在Redis中,如下图:单点登录的特点是:1.认证系统为独立的系统2.各个子系统通过HTTP或者其他协议与认证系统通信,完成用户认证3.用户身份信息存储在redis集群java中有很多用户认证的框架可以实现单点登录:1.Apache Sh...原创 2019-12-09 23:29:49 · 704 阅读 · 0 评论 -
Java面试2021
下面为拼多多、饿了么、蚂蚁金服、哈啰出行、携程、饿了么、2345、百度等公司给我留下较深印象的一些java面试题1. Private修饰的方法可以通过反射访问,那么private的意义是什么答:1.java的private修饰符并不是为了绝对安全性设计的,而是对用户常规使用java的一种约束。2.从外部对对象进行常规调用时,能够看到清晰的类结构。2. Java类初始化顺序答:基类静态代码块,基类静态成员字段(并列优先级,按照代码中出线的先后顺序执行,且只有第一次加载时执行)-》派生类静态代码块,派生原创 2021-01-28 12:37:10 · 586 阅读 · 0 评论 -
JDK1.8 ArrayList默认长度及扩容分析
我们都知道jdk1.6的时候,ArrayList默认长度为10但是jdk1.8之后,发生了变化1.首先看默认构造方法 /** * Constructs an empty list with an initial capacity of ten. */ public ArrayList() { this.elementData = DEFAU...原创 2020-03-27 17:12:48 · 1888 阅读 · 2 评论 -
poi操作excel
一、Excel导入导出的应用场景1、数据导入:减轻录入工作量2、数据导出:统计信息归档3、数据传输:异构系统之间数据传输二、POI简介(Apache POI)1、什么是POIApache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。HSSF - 提供读写Microsoft Excel格式档案...原创 2020-02-14 15:58:59 · 1390 阅读 · 1 评论 -
springboot简单的整合dubbo
1.创建分模块springboot先创建一个springboot的空项目然后删除无关文件2.创建分模块provider 和 consumer至此,我们的分模块项目已经基本创建完成各个模块之间的依赖关系接下来说下各个模块之间的依赖关系consumer --> providerconsumer 和 provier 又同时依赖于父pom【dubbo】ok理清依赖关系开始配置我们的...原创 2020-01-05 17:20:04 · 168 阅读 · 0 评论 -
@RequestParam和@PathVariable的用法与区别
一.SpringBoot——@PathVariableURL变量Web应用中的URL通常不是一成不变的,例如微博两个不同用户的个人主页对应两个不同的URL:http://weibo.com/user1和http://weibo.com/user2。我们不能对于每一个用户都编写一个被@RequestMapping注解的方法来处理其请求,也就是说,对于相同模式的URL(例如不同用户的主页,他们仅...原创 2019-10-30 12:14:39 · 201 阅读 · 0 评论 -
如何把jvm垃圾回收信息打印到文件
代码: -verbose:gc -Xms20M -Xmx30M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -Xloggc:F:\gc1.log1.首先配置Run -> Run configuration实例代码:package example2;public class Main { private Obje...原创 2019-07-17 11:12:32 · 690 阅读 · 0 评论 -
java8Lambda语法
一.Lambda表达式的基本语法:Java8中引入了一个新得操作符 "->" 该操作符称为箭头操作符或Lambda操作符箭头将Lambda表达式拆分为两部分左侧:Lambda 表达式的参数列表( 对应抽象方法接口中参数列表)右侧:Lambda表达式中所需要执行的功能,即Lambda体(对应抽象方法的实现功能)分为几种形式语法格式-:无参数,无返回值() -> Syste...原创 2019-07-17 17:02:20 · 409 阅读 · 1 评论 -
传统IO与NIO比较
一.什么是IO所谓IO即input和output的缩写,是对数据的流入和流出的一种抽象,编程中很常见的一个概念。二. 什么是流体会一下这几个词:水流(静止的水想必没人会叫水流),物流,人流(此人流非彼人流 = =!),可以发现流的特点:动态的,可转移的,从一处到另一处的三.java iojava为了我们调用方便,而屏蔽输入/输出源和流动细节,抽象出的用于解决数据流动问题的类体系,这就是j...原创 2019-08-01 09:25:16 · 180 阅读 · 0 评论 -
java8新特性
一.java8的主要内容:二.java8新特性简介:1.速度更快,改变内存结构2.代码更少(增加了新得语法Lambda表达式)3.强大的Stream API4.便于并行5.最大化减少空指针异常 Optional三.Lambda表达式1.为什么使用Lambda表达式?Lambda表达式是一个匿名函数,我们可以把Lambda表达式理解成一段可以传递的代码(将代码像数据一样进行传...原创 2019-07-16 17:11:58 · 352 阅读 · 0 评论 -
二分查找的变形实现
一.首先思考如何快速定位 IP 对应的省份地址?如图:这个功能并不复杂,它是通过维护一个很大的 IP 地址库来实现的。地址库中包括 IP 地址范围和归属地的对应关系。当我们想要查询 202.102.133.13 这个 IP 地址的归属地时,我们就在地址库中搜索,发现这个 IP 地址落在 [202.102.133.0, 202.102.133.255] 这个地址范围内,那我们就可以将这个 I...原创 2019-07-16 11:33:39 · 1210 阅读 · 0 评论 -
二分查找算法
今天我们讲一种针对有序数据集合的查找算法:二分查找( Binary Search )算法,也叫折半查找算法。二分查找的思想非常简单,很多非计算机专业的同学很容易就能理解,但是看似越简单的东西往往越难掌握好,想要灵活应用就更加困难。老规矩,我们还是来看一道思考题。假设我们有1000万个整数数据,每个数据占8个字节,如何设计数据结构和算法,快速判断某个整数是否出现在这1000万数据中?一....原创 2019-07-16 09:41:26 · 1850 阅读 · 0 评论 -
java8新特性之方法引用与构造器引用
当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用!(实现抽象方法的参数列表,必须与方法引用方法的参数列表保持一致!)一. 方法引用: 使用操作符 “::” 将方法名和对象或类的名字分隔开来。 如下三种主要使用情况: 对象::实例方法 类::静态方法 类::实例方法二、方法引用实例 (对象::实例方法名) 例如: ...原创 2019-07-18 11:10:46 · 116 阅读 · 0 评论 -
Java8新特性内置的四大核心函数式接口
在前面几篇简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义好了4类内置函数式接口,这4类接口其实已经可以解决我们开发过程中绝大部分的问题,只有一小部分比较特殊得情况需要我们自己去定义函数式接口,本文就简单来学习一下java8内置得4大核心函数式接口。/*...原创 2019-07-18 10:41:23 · 434 阅读 · 0 评论 -
java8新特性Lambda练习
1.调用Collection.sort()方法,通过定制排序比较两个Employee(先按年龄,年龄相同按姓名比)。使用Lambda作为参数传递List<Employee> employees = Arrays.asList( new Employee("张小", 19, 1999.99), new Employee("李而", 18, 299...原创 2019-07-18 09:43:44 · 582 阅读 · 0 评论 -
Java之内部类
一.理解一个类中又完整的嵌套了另一个类结构,被嵌套的类称为内部类。外面的类称为外部类,和内部类无关的外部类称为外部其他类。二.实例: class A{ String name; public void method(){ for(){ int i; class B{ String anme; } } }...原创 2019-07-30 08:47:33 · 91 阅读 · 0 评论 -
Java之静态内部类
一.静态内部类的特点: * 1.类中可以有任意五大成员实例:public class TestInner2 { String name; //静态内部类 static class Inner2{ int age; public void show(){ } public Inner2(){ ...原创 2019-07-30 09:33:52 · 102 阅读 · 0 评论 -
jdk动态代理
一.什么是动态代理动态代理:不需要生成代理类 分为jdk动态代理 和 CGLIB动态代理二.jdk动态代理作用通过反射虚拟化代理对象(不需要生成代理类)实现InvocationHandler 就可以了。package com.edu.emple4;import java.lang.reflect.InvocationHandler;import java.lang.reflec...原创 2019-06-12 18:37:02 · 992 阅读 · 2 评论 -
过滤器(Filter)与拦截器(Interceptor )区别
1.过滤器(Filter)Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是...原创 2019-09-18 10:28:51 · 256 阅读 · 0 评论 -
RBAC权限模型
RBAC级别:RBAC0 ~ RBAC3RBAC0:最核心的模型,其他的级别都是建立在该级别的基础上RBAC1:基于RBAC0模型,进行了角色的分层,也就是说角色有了上下级的区别RBAC2:也是基于RBAC0模型的基础上,进行了角色的访问控制静态职责分离:SSD主要约束:1.互斥角色:同一个用户不能授予互斥关系的角色2.基数约束:一个用户拥有的角色是有限的3.先决条件约...原创 2019-09-07 17:01:15 · 1298 阅读 · 0 评论 -
常用的正则表达式匹配规则
这里总结了常见的正则表达式的匹配规则:常用的正则表达式匹配规则模式描述\w匹配字母、数字、下划线,等价于[a-zA-Z0-9_] \w可以匹配汉字(python),\W匹配不是字母、数字、下划线的其他字符\s匹配任意空白字符,等价于(\t\n\r\f)\S匹配任意非空字符\d匹配数字,等价于[0-9]\D匹配不是数字的字符\A...原创 2019-09-05 08:24:30 · 551 阅读 · 0 评论 -
ThreadLocal
ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。从数据结构入手下图为ThreadLocal的内部结构图从上面的结构图,我们已经窥见ThreadLocal的核心机制:每个Thread线程内...原创 2019-08-31 18:32:44 · 95 阅读 · 0 评论 -
线程安全问题
1.文件冲突 * 1.采用悲观锁和乐观锁机制解决文件冲突; * 2.例如: a.VSS 微软提供的版本控制工具,采用就是悲观锁方式. 表示一个线程在访问文件时,另一个线程不允许访问.所以,解决线程安全问题. 但是开发过程中,多人维护同一个文件时,工作效率低.所以,一般情况下,一个文件只分配给一个人维护. b. CVS/SVN 开源的,采用乐观锁的方式维护...原创 2019-08-31 18:04:33 · 93 阅读 · 0 评论 -
请求之同步与异步总结
一.同步请求页面会闪烁的原因:请求处理后页面需要整体刷新,所以,页面会出现闪烁效果.二.异步请求,解决页面闪烁问题-原理请求处理后,页面不需要整体刷新,而是,进行局部刷新.三.AJax请求状态转变:在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。当 readyState 等于 4 且状态为 200 时,表示响应已就绪:代...原创 2019-08-30 23:45:43 · 241 阅读 · 0 评论 -
java8之Stream
一.了解什么是Stream即将数组源转化流,做一系列的流水线式的中间操作,而原来的数据源不会受到影响二.流(Stream)到底是什么呢?是数据渠道,用于操作数据源集合,数组等所生成的元素序列注意:1.Stream自己不会存数元素2.Stream不会改变源对象,相反,他们会返回一个持有结果的新Stream2.Stream操作是延迟执行的,这意味者他们会等到需要结果的时候才执行Str...原创 2019-07-21 22:11:46 · 90 阅读 · 0 评论 -
Java 面试宝典!并发编程后40道题及答案全送上
31、什么是可重入锁?举例来说明锁的可重入性:outer中调用了inner,outer先锁住了lock,这样inner就不能再获取lock。其实调用outer的线程已经获取了lock锁,但是不能在inner中重复利用已经获取的锁资源,这种锁即称之为 不可重入可重入就意味着:线程可以进入任何一个它已经拥有的锁所同步着的代码块。synchronized、ReentrantLock都是可重入的锁...原创 2019-07-08 19:22:38 · 1775 阅读 · 0 评论 -
Java 面试宝典!并发编程题及答案全送上!
金三银四跳槽季即将到来,作为 Java 开发者你开始刷面试题了吗?别急,我整理了71道并发相关的面试题,看这一文就够了!1、在java中守护线程和本地线程区别?java中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(bool on);true则把该线程设置为守护线程,反之则为用户线程。Thre...原创 2019-07-08 19:19:04 · 391 阅读 · 0 评论 -
Java是如何实现平台无关性(跨平台)的?
相信对于很多Java开发来说,在刚刚接触Java语言的时候,就听说过Java是一门跨平台的语言,Java是平台无关性的,这也是Java语言可以迅速崛起并风光无限的一个重要原因。那么,到底什么是平台无关性?Java又是如何实现平台无关性的呢?本文就来简单介绍一下。1.什么是平台无关性平台无关性就是一种语言在计算机上的运行不受平台的约束,一次编译,到处执行(Write Once ,Run Anyw...原创 2019-07-01 16:30:26 · 450 阅读 · 0 评论 -
线程池原理剖析
我们可以就看到只要起作用的是ThreadPoolExecutorJava中的线程池核心使用构造函数,采用ThreadPoolExecutorThreadPoolExecutor有几个参数,为构造函数参数核心池大小(CodeOllSize)MailMumPoolSIZE 线程池大小Keepalivetimi 终止时间Unit 超时秒数核心线程池与最大线程池的区别:核心...原创 2019-06-10 17:02:22 · 158 阅读 · 1 评论 -
线程池介绍及创建线程池的4种方式
1. 什么是线程池Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源...原创 2019-06-10 16:40:27 · 43362 阅读 · 8 评论 -
java内对象的创建及内存解析
一.首先弄清程序执行的过程,见图例如 Person p1 = new Person();则p1存放在栈中,new Person()存放在堆中。P1的值是new Person的内存地址,也可看成是它的一个引用。二.java类由哪些部分组成注意:三.构造器的使用子类调用父类的构造器时要注意:1.子类构造器默认会访问父类中空参数的构造器2.当父类中没有空参数的构造器时,子类的构造...转载 2019-06-01 21:22:39 · 274 阅读 · 1 评论 -
JDK 1.5 Lock锁
一.什么是JDK 1.5 Lock锁我们都用过同步函数,知道同步代码块的锁是任意对象,同步方法的锁是this对象,静态方法的锁是类的字节码文件对象。但是但是我们并没有直接看到在哪里加了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5中提供了一个新的锁对象Lock。有了lock锁后可以明确知道在哪里上锁及释放锁。二.作用手动锁,保证线程安全问题,灵活性高三.Lock与Syn...原创 2019-06-06 18:13:43 · 364 阅读 · 1 评论 -
CGLIB动态代理
Cglib动态代理,需要导入jar包:实例:package emple;import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;import java.lang.reflect.Method;/**...原创 2019-06-12 20:19:10 · 853 阅读 · 1 评论 -
多线程线程安全问题
1.什么是线程安全问题?答:当多个线程共享同一个全局变量,做写的时候,可能会受到其他线程的干扰,导致数据有问题,这种线象叫线程安全问题。有一种情况可以不用讨论:做读的时候,不会产生线程安全问题还用多个线程共享一个局部变量时,不会发生线程安全问题案例:现在有100张火车票,2个窗口同时抢火车票,用多线程模拟package com.emple2;/** * @author shks...原创 2019-06-05 18:18:28 · 520 阅读 · 1 评论 -
多线程分批处理数据
需求:目前蚂蚁课堂有10万个用户,现在蚂蚁课堂需要做活动,给每一个用户发送一条祝福短信思路:就是将数据分成几个部分,这里用集合。然后使用多线程进行异步发送步骤1.初始化数据2.定义每个线程分批发送大小3.计算每个线程需要分批跑的数据4.进行分批发送实例:实体类:package com.emple.entity;import java.security.SecureRa...原创 2019-06-05 17:17:06 · 5028 阅读 · 2 评论 -
现在有T1,T2,T3三个线程,怎么保证T2在T1执行完后执行,T3在T2执行完后执行
首先了解多线程里的join方法Join方法:例如:在A线程中,调用B的join方法作用:A等待B线程执行完毕后(释放CPU执行权),在继续执行。思路:在T2中用T1的join方法,在T3中用T2的join方法,记得try-catch实例:/** * @author shkstart * @date 2019/6/5- 15:55 */public class Test007 ...原创 2019-06-05 16:03:32 · 905 阅读 · 1 评论 -
守护线程与非守护线程
一.什么是守护线程与非守护线程守护线程:和main线程相关。和主线程一起销毁。例如gc线程。非守护线程:自己创建的线程叫用户线程也叫非守护线程,如果主线程停止掉,不会影响用户线程。 非守护线程特征:和主线程互补影响。实例:创建一个用户线程/** * @author shkstart * @date 2019/6/5- 15:06 */public class Test00...原创 2019-06-05 15:24:42 · 246 阅读 · 1 评论 -
使用匿名内部类方式创建线程
实例:/** * @author shkstart * @date 2019/6/5- 10:14 */abstract class Parent{ public abstract void add();}public class TheadDemo3 { public static void main(String[] args) { /* Paren...原创 2019-06-05 10:24:08 · 750 阅读 · 1 评论