随笔分类 -  java

摘要:重定向 操作地点:浏览器 response.sendRedirect(url); 转发 操作地点:服务器 当前请求未完成,服务器调用另一个程序继续完成整个请求 总结: * 请求次数 * 重定向:请求2次,tomcat创建了两个request对象 * 转发:请求1次,tomcat创建了2个reques 阅读全文
posted @ 2021-04-02 22:53 林被熊烟岛 阅读(50) 评论(0) 推荐(0)
摘要:反射 反射(Reflection)是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。 通过反射机制,可以在运行时访问 Java 对象的属性,方法,构造方法等。 反射的应用场景 开发通用框架 - 反射最重要的用途就是开发各种通用框架。很 阅读全文
posted @ 2021-04-01 11:01 林被熊烟岛 阅读(214) 评论(0) 推荐(0)
摘要:jvm中主要分为方法区、堆、栈、本地方法栈、程序计数器这几部分,其中程序计数器是唯一不会出现OOM的 1. java堆溢出(heap) Java堆内存主要用来存放运行过程中所有的对象,该区域OOM异常一般会有如下错误信息: java.lang.OutofMemoryError:Java heap s 阅读全文
posted @ 2021-03-28 19:49 林被熊烟岛 阅读(1361) 评论(0) 推荐(1)
摘要:1:类加载器 主要负责从文件系统中加载class信息,加载的信息存放在一块被称为方法区的地方。 2:方法区 就是存放类信息,常量信息,常量池信息。包括字符串字面量,和数字常量信息。 3:java堆 虚拟机启动时创建的JAVA堆,他是java程序最要的工作内存区域,几乎所有对象的创建实例都在堆中,堆空 阅读全文
posted @ 2021-03-20 17:51 林被熊烟岛 阅读(41) 评论(0) 推荐(0)
摘要:什么是栈 栈中存储什么? 每个线程都有自己的栈,栈中的数据都是以栈帧的格式存在。 在这个线程上正在执行的每一个方法都各自对应一个栈帧 栈帧是一个内存区块,是一个数据集维系着方法执行过程中的各种数据信息 在一条活动线程中,一个时间点上,只会有一个活动的栈帧,即只有当前正在执行的方法的栈帧(栈顶栈帧)是 阅读全文
posted @ 2021-03-20 16:57 林被熊烟岛 阅读(71) 评论(0) 推荐(0)
摘要:双冒号的使用 双冒号运算符在Java 8中被用作方法引用,方法引用是与 lambda 表达式相关的一个重要特性。它提供了一种不执行方法的方法。为此,方法引用需要由兼容的函数接口组成的目标类型上下文。 使用lambda表达式会创建匿名方法, 但有时候需要使用一个lambda表达式只调用一个已经存在的方 阅读全文
posted @ 2021-02-07 16:45 林被熊烟岛 阅读(166) 评论(0) 推荐(0)
摘要:1.jsonArray的字符串转List对象数组 JSONObject jsonObject=JSONObject.parseObject(dbObjectColumnVo.getTaName()); JSONArray arr = jsonObject.getJSONArray("columnsD 阅读全文
posted @ 2021-01-29 18:03 林被熊烟岛 阅读(56) 评论(0) 推荐(0)
摘要:基本概念: 加密解密(可以采用对称加密或者非对称加密,详细加密算法 可以查看我的另外一个分类:【java加密】) 加密:发送方利用接收方的公钥对要发送的明文进行加密。 解密:接收方利用自己的私钥进行解密。 公钥和私钥配对的,用公钥加密的文件,只有对应的私钥才能解密。当然也可以反过来,用私钥加密,用对 阅读全文
posted @ 2020-11-13 15:06 林被熊烟岛 阅读(401) 评论(0) 推荐(0)
摘要:目的:根据配置信息封装mybatis的example。 1.要先进行字段的格式封装:首字母大写的驼峰式命名 2.遍历封装后的字段。使用代理获取值还有获取example封装 public MAcChannelSpotBoExample getExampleByVo(MAcChannelSpotVo v 阅读全文
posted @ 2020-08-24 17:28 林被熊烟岛 阅读(153) 评论(0) 推荐(0)
摘要:@Transactional 1.在接口Service增加 @Transactional注解 2.该接口是public 而且抛出了异常 public void testTransction(Vo vo) throws Exception; 3.在接口实现类抛出 RuntimeException 异常 阅读全文
posted @ 2020-07-03 09:21 林被熊烟岛 阅读(123) 评论(0) 推荐(0)
摘要:在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务 阅读全文
posted @ 2020-04-08 23:46 林被熊烟岛 阅读(149) 评论(0) 推荐(0)
摘要:一、接口的默认方法-default Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: interface Formula { double calculate(int a); default double sqrt(int 阅读全文
posted @ 2020-03-24 16:57 林被熊烟岛 阅读(200) 评论(0) 推荐(0)
摘要:如何确定某个对象是“垃圾”? 这一小节先了解一个最基本的问题:如果确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?通过什么方法判断一个对象可以被回收了。 在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必 阅读全文
posted @ 2020-03-18 15:43 林被熊烟岛 阅读(161) 评论(0) 推荐(0)
摘要:基础版 网上百度了一个简单的socket服务端和客户端监听代码 并且已经试验完成。直接上代码 服务端: package com.whalecloud.uip.server.socket; import java.io.DataOutputStream; import java.net.ServerS 阅读全文
posted @ 2020-03-10 16:39 林被熊烟岛 阅读(1426) 评论(0) 推荐(0)
摘要:HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象,来放entry键值对。当获取对象时,通过键对象的 阅读全文
posted @ 2020-03-04 23:23 林被熊烟岛 阅读(291) 评论(0) 推荐(0)
摘要:List list = operationsOfficeService.getOperationalProgress(param); Map<String, List> map = new HashMap<>(16); for(int i=0; i<list.size(); i++) { Map o 阅读全文
posted @ 2019-10-25 16:58 林被熊烟岛 阅读(383) 评论(0) 推荐(0)
摘要:1.spring boot (jar包形式)启停 #!/usr/bin/env bash APP_NAME=whale-uip-datasource-0.0.1-SNAPSHOT #JVM参数 JVM_OPTS="-DPGM_ID=$APP_NAME -Dname=$APP_NAME -Xmx102 阅读全文
posted @ 2019-07-19 15:19 林被熊烟岛
摘要:1. 导出CSV文件 /** * @Author lin.hongwen * @Date 2018/05/29 * 导出CVS文件到指定目录 * * @param file csv文件(路径+文件名),csv文件不存在会自动创建 * @param dataList 数据 * @return */ p 阅读全文
posted @ 2018-06-06 17:10 林被熊烟岛 阅读(152) 评论(0) 推荐(0)
摘要:1. 把yyyyMMddHHmmss 变成date型 String startTime = params.get("startTime").toString(); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMddHHmmss" 阅读全文
posted @ 2018-05-30 16:48 林被熊烟岛 阅读(168) 评论(0) 推荐(0)
摘要:1.类的多型性 void doStuff(Shape s) { s.erase(); s.draw(); } Circle c = new Circle(); Triangle t = new Triangle(); Square s = new Square(); doStuff(c); doSt 阅读全文
posted @ 2018-05-08 15:36 林被熊烟岛 阅读(170) 评论(0) 推荐(0)