
java
奋进中的程序员
这个作者很懒,什么都没留下…
展开
-
idea报错cannot access com.*.*
在开发过程中偶尔会碰到以下情况明明包、类都存在,就是无法引用到对应包,报cannot access com.*.* 异常解决方式:File -> Invalidate caches /restart原创 2022-02-16 15:05:29 · 1842 阅读 · 0 评论 -
java根据权重随机抽奖
如某次抽奖活动需求中将概率分布:一等奖:二等奖:三等奖:四等奖=1:2:3:4中将的概率分布:代码实现package algorithm.zhongjiang;import java.util.ArrayList;import java.util.List;public class ChoosePrize { public static int getPrize(List<Prize> list){ double sum = list.s..原创 2022-02-09 19:57:59 · 1036 阅读 · 0 评论 -
LockSupport使用,以及与wait/notify await/signal的比较
LockSupport通过pack 和 unpark 的方法来实现阻塞和唤醒线程的操作Locksupport l类使用了一种名为permit 许可证的概念来做到阻塞和唤醒线程的功能,每个线程都有一个许可证permit,Permit只有两个值 1 和0 默认是0使用Locksupport 的pack 和unpark方法 实现wait/notify await/signal的阻塞 唤醒功能1.使用wait/notify阻塞唤醒package com.example.starter;pu..原创 2021-11-14 21:59:57 · 358 阅读 · 0 评论 -
死锁定位分析
死锁:两个 或两个以上的线程执行过程中因抢夺资源而互相等待的过程package com.example.starter;import java.util.concurrent.TimeUnit;class HoldLockThread implements Runnable{ private String lockA; private String lockB; public HoldLockThread(String lockA, String lockB) { .原创 2021-11-14 13:56:27 · 232 阅读 · 0 评论 -
多线程Callable使用
多线程情况下 使用callable的好处是 可以获取到结果注意使用callable时 要结合 FutureTask使用,因为FutureTask类继承runnbale接口,Thread类实例化时必须要传runnable或其子类。FutureTask实例化时 要传callable类,所以callable和FutureTask要结合使用class CallableThread implements Callable<Integer>{ @Override public Inte.原创 2021-11-09 23:16:25 · 694 阅读 · 0 评论 -
Lock在多线程模式下的应用
Lock多线程模式下的使用记住三个步骤a.判断 while条件判断 多线程模式下一定是whileb.干活 执行业务代码c.通知 唤醒下一个要运行的线程还得记住 线程操作资源类,资源类要定义好 condition条件别忘了1.一个初始值为0的变量 两个线程对其交替操作一个加1 一个减1 来5轮/** * 一个初始值为0的变量 两个线程对其交替操作 * 一个加1 一个减1 来5轮 */public class ProdConsumer { public static...原创 2021-11-07 23:15:57 · 213 阅读 · 0 评论 -
Java 队列的使用
BlockQueue 的核心方法add方法实例,队列大小是3 当add第四个元素时报错package com.example.starter;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/** * 阻塞队列 * 阻塞队列有没有好的一面 * * 不得不阻塞 如何管理 */public class BlockingQueueDe...原创 2021-11-07 22:07:20 · 254 阅读 · 0 评论 -
volatile的使用,如何保证原子性
volatile特性:1.保证可见性2.不保证原子性3.禁止指令重排如下代码所示package com.example.starter;public class VolatileDemo { public static void main(String[] args) throws InterruptedException { Mydata data = new Mydata(); for (int i = 1; i <= 20 ; i++) {原创 2021-11-07 14:13:27 · 849 阅读 · 0 评论 -
Java 多线程售票
方式一:继承thread 类每个线程100张票package com.example.starter;public class SellTickets extends Thread{ public static void main(String[] args) { Thread t1 = new SellTick1(); Thread t2 = new SellTick1(); Thread t3 = new SellTick1(); t1.start(.原创 2021-11-05 22:02:02 · 3548 阅读 · 2 评论 -
Object 划分
1.PO(persistant object) 持久对象PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包 含任何对数据库的操作。2.DO(Domain Object)领域对象 就是从现实世界中抽象出来的有形或无形的业务实体。 3.TO(Transfer Object) ,数据传输对象 不同的应用程序之间传输的对象4.DTO(Data Transfer Object)数据传输对象 这个概念来源于 J2EE 的设计模式原来的目的是为了 EJB 的分布式应原创 2021-07-25 19:21:45 · 175 阅读 · 0 评论 -
idea 一次启动多服务配置
1.idea 中 Edit Configurations2. 点击加号3.选择Compound4.把要启动的服务都加进来5.再启动gulimall 会将第4步加入的服务全部启动原创 2021-07-17 16:49:11 · 341 阅读 · 0 评论 -
空字段不返回到界面的设置@JsonInclude
当数据库查询到数据为空时字段会还回空到界面,如下图所示children属性。如果数据库还回null 属性不还回到界面如何处理?可以在实体类的属性中增加如下注解:@JsonInclude//不为空时才返回这个字段 @JsonInclude(JsonInclude.Include.NON_EMPTY) @TableField(exist = false) private List<CategoryEntity> children;当实体中对应数据库无属性时 可以使用 ...原创 2021-07-04 20:07:34 · 407 阅读 · 0 评论 -
JAVA后端校验统一异常处理
1.实体类增加校验规则/** * 检索首字母 */ @NotEmpty @Pattern(regexp = "/^[a-zA-Z]$/",message = "检索首字母必须是一个字母") private String firstLetter;2.增加统一异常处理类package com.atguigu.gulimall.product.exception;import com.atguigu.common.exception.BizCodeEnume;import co原创 2021-07-04 14:55:37 · 1093 阅读 · 0 评论 -
JSR303后台校验
关于JSRJSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。关于 JSR-303JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 .原创 2021-07-04 14:49:33 · 132 阅读 · 0 评论 -
文件上传(四)
通过以下方式去上传文件:后台代码:import com.aliyun.oss.OSS;import com.aliyun.oss.common.utils.BinaryUtil;import com.aliyun.oss.model.MatchMode;import com.aliyun.oss.model.PolicyConditions;import com.atguigu.common.utils.R;import org.springframework.beans.facto原创 2021-06-20 20:47:29 · 136 阅读 · 0 评论 -
文件上传(三)
使用SpringCloud Alibaba-OSS上传文件spring-cloud-alibabahttps://github.com/alibaba/spring-cloud-alibaba原创 2021-06-20 18:58:24 · 190 阅读 · 0 评论 -
文件上传(二)
文件管理--帮助可以看到sdk api的使用原创 2021-06-20 18:28:56 · 238 阅读 · 0 评论 -
文件上传(一)
文件上传的方式:原创 2021-06-20 16:54:58 · 207 阅读 · 0 评论 -
java 导出excel 和zip
<a class="button btn-circle " href="javascript:;" onclick="amazomReportHandle.exportAmazonReport();"> <i class="fa fa-cloud-download"></i> <span class="hidden-480"><spring:message code="i18n.report.batch.download" t..原创 2021-06-18 16:48:23 · 270 阅读 · 0 评论 -
枚举的几种使用
1. 枚举常量public enum ColorEnum { RED,GREEN,YELLOW,BLANK,ORANGE,BLUE;}原创 2021-06-07 10:38:10 · 159 阅读 · 0 评论 -
post请求注意事项
1.@RequestBody@RequestMapping("/delete") //@RequiresPermissions("product:category:delete") public R delete(@RequestBody Long[] catIds){ categoryService.removeByIds(Arrays.asList(catIds)); return R.ok(); }原创 2021-06-06 10:54:07 · 406 阅读 · 0 评论 -
web跨域
当我们web存在跨域问题时会报如下错:Access to XMLHttpRequest at 'http://localhost:88/api/sys/menu/nav?t=1622640733898' from origin 'http://localhost:8001' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control原创 2021-06-02 21:58:48 · 432 阅读 · 0 评论 -
idea自动补全
快速生成main方法原创 2021-06-01 13:56:54 · 299 阅读 · 0 评论 -
使用log4j2将sql语句记录到console控制台
1.mybatis 配置文件配置:<setting name="logImpl" value="STDOUT_LOGGING" />完整d原创 2021-05-31 11:02:03 · 635 阅读 · 0 评论 -
AOP记录操作日志
1 自定义注解通过自定义注解,来标示方法需不需要进行记录日志,如果该方法在访问时需要记录日志,则在该方法上标示该注 解既可。@Inherited@Documented@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface OperateLog {}...原创 2021-05-29 20:15:51 · 495 阅读 · 0 评论 -
Java8中流式编程构造树形结构
@Override public List<CategoryEntity> listWithTree() { //查出所有分类 List<CategoryEntity> entities = baseMapper.selectList(null); //组装成父子树形结构 List<CategoryEntity> level1Menus = entities.stream().filter((ca..原创 2021-05-23 21:56:44 · 397 阅读 · 1 评论 -
maven install 报错: -source 1.5 中不支持 diamond 运算符5-05
maven install 报错:-source 1.5 中不支持 diamond 运算符简单粗暴的解决方式:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> ..原创 2021-05-05 17:16:06 · 1710 阅读 · 0 评论 -
idea 忽略不需要提交的文件
idea 忽略掉不需要提交的文件配置对.gitignore 文件做如下配置**/mvnw**/mvnw.cmd**/.mvn**/target/.idea**/.gitignore**/README.md在idea的version Control下可以看到未提交的文件右键--Add to VCS ,将文件变为可提交状态...原创 2021-05-04 16:08:22 · 830 阅读 · 0 评论 -
main方法使用ExecutorService 使线程全部结束后再结束main主线程的方式
public static void main(String[] args) { ExecutorService ex = Executors.newFixedThreadPool(5); for (int i = 1; i < 100; i++) { final int pageNum = i; Runnable run = new Runnable() { @Override public void run() { System.out.print..原创 2021-04-09 17:05:54 · 740 阅读 · 0 评论 -
main方法获取Spring 容器中的service方式
如下@service标注的类@Servicepublic class EsIndexForPackageJobHandler extends IJobHandler {}使用main方法去获取servicepublic static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("classpath*:applicationcontext*.xml"); .原创 2021-04-07 14:22:36 · 820 阅读 · 0 评论 -
调用https 接口 绕过证书
package com.llw.medical.isc.util;import com.alibaba.fastjson.JSONObject;import com.llw.medical.common.util.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.net.s...原创 2020-03-11 15:47:10 · 2451 阅读 · 0 评论 -
HttpURLConnection下载网络文件
@RequestMapping(value = "/downloadFingerPlugIn.jspx")public void downloadFingerPlugIn(HttpServletRequest request, HttpServletResponse response) { try { // 统一资源 ...原创 2020-02-24 17:38:56 · 425 阅读 · 0 评论 -
url请求参数中文乱码的问题
web.xml中配置Spring提供的过滤器类原创 2019-12-11 15:07:48 · 247 阅读 · 1 评论 -
aop日志记录
servlet.web.xml中配置:自动为spring容器中配置了@aspectJ 切面的bean创建代理 织入切面,proxy-target-class="true"表示使用CGLIB动态代理的方式织入<aop:aspectj-autoproxy proxy-target-class="true"/>创建bean,以下示例是基于注解的切入。在使用了@annota...原创 2019-11-22 15:25:23 · 194 阅读 · 0 评论 -
java读取图片以及转成base64串
java读取图片以及转成base64串try { byte[] data = null; ByteArrayOutputStream output = new ByteArrayOutputStream(); FileInputStream ips = null; ips = new FileIn...原创 2019-11-21 11:25:17 · 655 阅读 · 0 评论 -
quartz报错:OPTION SQL_SELECT_LIMIT=1
[2017-11-30 09:13:49.366][ERROR][ErrorLogger.schedulerError] An error occurred while scanning for the next triggers to fire.org.quartz.JobPersistenceException: Couldn't acquire next trigger: You hav原创 2017-11-30 10:21:28 · 3467 阅读 · 0 评论 -
后台接收前台中文乱码
将tomcat server.xml 如下配置加上URIEncoding="UTF-8":<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/><Connector po原创 2018-10-17 14:21:18 · 646 阅读 · 0 评论 -
postman发送post请求
原创 2018-12-07 16:59:05 · 263 阅读 · 0 评论 -
windows下执行jar中某个类的main 方法
windows下执行jar中某个类的main 方法:cd 到jar存放的目录 再执行下面命令java -cp shanxijanmo.jar com.test.FileUtil原创 2018-12-07 18:27:39 · 2739 阅读 · 0 评论 -
JVM调优
Xms 是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢。Xmx 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常。Xss 是指设定每个线程的堆栈大小。这个就要依据你的程序,看一个线程大约需要占用多少内存,可能会有多少线程同时运行等。以上三个参数的设置都是默认...转载 2018-12-07 15:59:12 · 181 阅读 · 0 评论