java基础
文章平均质量分 61
yin__ren
本人毕业于华中科技大学,现就任于美团,从事Java后台开发,欢迎大家相互交流学习
展开
-
G1 垃圾回收器
一、垃圾收集器简介1、发展历程第一阶段,Serial(串行)收集器在jdk1.3.1之前,java虚拟机仅仅能使用Serial收集器。 Serial收集器是一个单线程的收集器,但它的“单线程”的意义并不仅仅是说明它只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。第二阶段,Parallel(并行)收集器Parallel收集器也称吞吐量收集器,相比Serial收集器,Parallel最主要的优势在于使用多线程去完成垃原创 2022-03-21 16:42:26 · 1016 阅读 · 1 评论 -
Java 获取的操作系统名称
Java 获取操作系统与用户名String osName = System.getProperty("os.name");String userName = System.getProperty("user.name");操作系统的名称:public enum EPlatform { Any("any"), Linux("Linux"), Mac_OS("Mac OS"), Ma...原创 2019-12-05 19:30:53 · 3398 阅读 · 0 评论 -
Java 中的 goto 语句(break/continue)
一般的 continue 会退回到内存循环的开头,并继续执行一般的 break 会中断并跳出当前循环代标签的 continue 会到达标签的位置,从新开始带标签的 break 会中断并跳出当前标签所指的循环public class LabelDemo { public static void main(String[] args) throws InterruptedException { //标签 exit: while (true){.原创 2021-01-11 11:22:00 · 381 阅读 · 1 评论 -
常用 JVM 参数
推荐阅读: JVM参数配置说明1、堆栈内存配置配置参数说明示例-Xmx设置最大堆大小-Xmx3550m,设置JVM最大可用内存为3550 MB-Xms设置JVM初始内存-Xms3550m,设置JVM初始内存为3550 MB。建议与 -Xmx 相同,避免每次垃圾回收完成后JVM重新分配内存-Xmn设置年轻代大小-Xmn2g,设置年轻代大小为 2 GB整个JVM内存大小=年轻代大小+年老代大小+持久代大小 持久代一般固定大小为64 MB,所以增大年轻代后,将.原创 2019-12-30 20:47:42 · 447 阅读 · 0 评论 -
Java 中的 PO、VO、BO、DTO、DAO、POJO 概念
参考博客: 详述 PO VO BO DTO DAO 和 POJO 的概念及区别DAO:数据访问对象,负责持久层的操作,为业务层提供接口,主要用来封装对数据库的访问,常见操作无外乎 CURD可以认为一个 DAO 对应一个 POJO 对象位于业务逻辑与数据库资源中间,可以结合 PO 对数据库进行相关操作PO: 持久层对象,由属性与 setter、getter 组成,可以将数据库表...原创 2019-12-23 16:56:59 · 687 阅读 · 2 评论 -
Java 中替代 if else
参考博客: Java中的大量if else语句的替代方案一、案例public int calculate(int a, int b, String operator) { int result = Integer.MIN_VALUE; if ("add".equals(operator)) { result = a + b; } else if ("...原创 2019-12-15 12:04:37 · 2645 阅读 · 0 评论 -
Java 反射给类的属性赋值,取代 setter
实现思路:代码:public static <T> T create(Class<T> clazz,String value) { //类中必须要有无参构造器 Object obj = null; try { obj = clazz.getDeclaredConstructor().newInstance(); } catch ...原创 2019-12-14 18:06:40 · 589 阅读 · 0 评论 -
Java 的 instanceof 与 isInstance 区别
obj.instanceof(class): 这个对象是不是这种类型一个对象是本身类的一个对象一个对象是本身类父类(父类的父类)和接口(接口的接口)的一个对象所有对象都是Object凡是null有关的都是false null.instanceof(class)class.inInstance(obj): 这个对象能不能被转化为这个类一个对象是本身类的一个对象一个对象...原创 2019-12-14 16:45:49 · 131 阅读 · 0 评论 -
java 父类对象赋值给子类
方式一:private void fatherToChild(Object father, Object child) { if (!(child.getClass().getSuperclass() == father.getClass())) { try { throw new Exception(child + "不是" + father + "的子类");...原创 2019-12-14 16:36:56 · 5483 阅读 · 2 评论 -
meta 详解
&lt;!DOCTYPE html&gt; &lt;!-- 使用 HTML5 doctype,不区分大小写 --&gt;&lt;html lang="zh-cmn-Hans"&gt; &lt;!-- 更加标准的 lang 属性写法 http://zhi.hu/XyIa --&gt;&lt;head&gt;转载 2018-11-02 14:57:54 · 336 阅读 · 0 评论 -
java 断言 assert
assert 官方文档assert 详解IDEA中开启断言原创 2018-09-18 16:13:48 · 246 阅读 · 0 评论 -
java 实现 AES 加解密
1. 原理:AES加密 2. java 代码实现注: ENCODE_RULES 为自己定义的值,如:private static final String ENCODE_RULES = "liu";加密/** * 加密 * 1. 构造密钥生成器 * 2. 根据 encodeRules 规则初始化密钥生成器 * 3. 产生密钥...原创 2018-08-17 15:27:22 · 637 阅读 · 1 评论 -
zheng 项目(一)之从 zheng-common 开始
1. 开始前的准备项目配置文档 如何学习开源项目 (个人认为可以抽点时间看一下) 帮助开始的 README 《maven 实战》(不太了解的可以看前五章入门)2. annotation 包...原创 2018-08-15 17:35:57 · 1209 阅读 · 0 评论 -
Nginx 配置反向代理服务器
推荐阅读: Nginx 配置反向代理服务器基本配置# 设置 upstream server: #weight: 权重,即采用1:1比例轮询 upstream backend_server{ server IP:8090 weight=1; server IP:8090 weight=1; }# 设置动态请求 location 为 ...原创 2019-06-25 11:18:48 · 310 阅读 · 0 评论 -
nginx 高性能原因
一、epoll 多路复用简单理解: I/O 多路复用epoll 解决 IO 复用的多路通知epoll 观察多个流,只通知 I/O 事件的流,避免 select 的轮询操作二、master worker 进程模型一个 master,多个 worker,master 管理 worker,worker 处理请求,且 worker 进程为单线程master 进程用来管理 wo...原创 2019-06-25 15:38:11 · 2383 阅读 · 0 评论 -
查询优化之多级缓存
一、缓存设计存储设备: 快速存取设备和内存将缓存推到离用户最近的地方脏缓存清理二、redis 集中式缓存1. 单机版2. sentinal 哨兵模式定义: 使用一个或多个哨兵对 redis 节点进行监控,在主节点出现故障的情况下,能将从节点中的一个升级为主节点,进行故障转义,保证系统的可用性3. 集群 cluster 模式三、本地数据热点缓存四、nginx pro...原创 2019-06-25 21:23:49 · 984 阅读 · 0 评论 -
高并发订单架构阅读总结
一、库分表二、订单 ID三、最终一致性四、数据库高可用五、数据分级六、粗细管道原创 2019-08-16 09:18:58 · 469 阅读 · 0 评论 -
Java 定时器
推荐阅读: springboot 定时任务一、简介定时任务的几种实现方式:Timer:jdk 自带的定时调度类,可以简单的实现按某一频度进行任务执行功能比较单一,无法实现复杂的调度任务ScheduledExecutorService:也是 jdk 自带的一个基于线程池设计的定时任务类其每个调度任务都会分配到线程池中的一个线程执行,所以其任务并发执行,互不影响Spring...原创 2019-08-03 17:35:36 · 282 阅读 · 0 评论 -
POI 整理
官网实例: POI APIs文章链接: java poi 读取Excel一、创建 Workbookxls --> new HSSFWorkbook()xlsx --> new XSSFWorkbook()Workbook wb = new HSSFWorkbook();...try(OutputStream fileOut = new FileOutputStre...原创 2019-08-03 16:11:44 · 154 阅读 · 0 评论 -
Java 中 JsonMapper 的简单封装
一、依赖<!-- Jackson --> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-guava</artifactId>...原创 2019-07-12 12:55:12 · 1138 阅读 · 0 评论 -
SpringMVC 下使用 Validate
一、依赖与注解依赖:<!-- validation --> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>...原创 2019-07-12 11:42:00 · 972 阅读 · 0 评论 -
java pio 读取 Excel 文件并写入 mysql
大致思想分为两步:读取 Excel 内容到 Map 或 List 中将 Map 或 List 中的内容写入 Mysql 数据库一、导入 jar 包jar 包保存的百度网盘二、读取 Excel 内容package com.poi;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss...原创 2019-06-29 18:50:08 · 797 阅读 · 2 评论 -
定制化错误码
一、错误码类CommonError 接口:public interface CommonError { public int getErrCode(); public String getErrMsg(); public CommonError setErrMsg(String errMsg);}EnumCommonError 枚举类:public enum E...原创 2019-06-29 11:05:31 · 359 阅读 · 0 评论 -
查询优化之页面静态化
推荐阅读: 动静不分离和动静分离架构示意图静态请求 CDN推荐阅读:使用CDN加速静态内容交付最常被遗忘的Web性能优化:浏览器缓存一、Cache Controller 响应头必读: Cache-Controlprivate: 客户端可以缓存public: 客户端和代理服务器都可以缓存max-age=xxx: 缓存内容将在 xxx 秒后失效no-cache: 强制向服务...原创 2019-06-26 19:21:04 · 464 阅读 · 2 评论 -
springboot 定制化内嵌tomcat
一、application.properties 配置文件server.port: 端口号server.address: IP 地址server.tomcat.accept-count: 等待队列长度,默认100server.tomcat.max-connections: 最大可被连接数,默认10000server.tomcat.max-threads: 最大工作线程数,默认200...原创 2019-06-22 15:54:22 · 1245 阅读 · 0 评论 -
java+chromeDriver实现微博爬虫(二)
相关配置可以参考:java+chromeDriver实现微博爬虫import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriverService;i...原创 2018-03-01 22:05:08 · 557 阅读 · 0 评论 -
swing设置背景图片和按钮
public class ImageFrame extends JFrame{ Dimension frameSize = new Dimension(1000, 600); ImageIcon imageIcon = new ImageIcon(this.getClass().getResource("/game/img/startGame.jpg")); publi原创 2017-11-23 22:52:18 · 2285 阅读 · 0 评论 -
JSP携带id属性实现不同JSP页面的跳转
1.首先明白java如何得到Get和Post请求URL和参数列表一 获取URL:getRequestURL()二 获取参数列表:1.getQueryString()只适用于GET,比如testServlet?a=b&c=d&e=f,通过request.getQueryString()得到的是a=b&c=d&e=f.2.getParameter()转载 2017-07-11 23:12:40 · 6448 阅读 · 0 评论 -
关于input标签带有enctype="multipart/form-data"而导致getParameter获取不到值的解决方法2
首先,我在这里使用的是jspSmartUpload的jar包1.由于jspSmartUpload的默认编码方式不是utf8,所以首先修改一下jspSmartUpload源文件:对于上传:在SmartUpload.java类中①.在Upload()方法中,将String var19 = new String(this.m_binArray, this.m_startDat原创 2017-07-11 12:47:26 · 1119 阅读 · 0 评论 -
关于request.getAttribute()获取值的强转问题
首先,用request.getAttribute()获取的值是Object类型,所以可以强转为String类型,但是不能直接强转为int类型,否则会报错,所以在无数次的百度后,发现有一下两种方式可以参考:1.Integer.parseInt(String.valueOf(request.getAttribute("attrname") != null ? request.getAttrib原创 2017-07-13 10:33:12 · 10058 阅读 · 0 评论 -
java日期格式化及获取相关总结
一. 可以使用java中的日期格式化工具java.text.SimpleDateFormat来格式化,以下为示例代码:1.创建java.text.SimpleDateFormat实例SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");参数说明,"yyyy-MM-dd"表示日期的格式,也可以是这样的 yyyy-原创 2017-09-09 09:29:41 · 371 阅读 · 0 评论 -
字符串转换为数字时出现NumberFormatException错误
用Integer.parseInt()转换字符时抛出NumberFormatException错误原因:一. 字符串中包含空格或非数字字符:检查所输入的字符串或者从字符串中提取数字1 String类提供的方法:public String stringToNumber (String string){ string = string.trim();原创 2017-09-10 10:12:23 · 28787 阅读 · 1 评论 -
springmvc报400错误,并用@inintBinder解决类型转换问题
springmvc form表单提交报400错误,出现400错误的原因及解决方法:原因:在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求)。1:一般最常见的就是后台的实体类bean与前台穿过的类型不匹配,如你的ja原创 2017-09-10 10:39:36 · 1874 阅读 · 0 评论 -
springmvc注册相关代码
function CheckUserName() { var username = document.getElementById("username").value; if (CheckString("username") == true) { document.getElementById("m_username"原创 2017-09-10 18:55:05 · 308 阅读 · 0 评论 -
验证码相关
package com.springmvc.Common;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.IOException;import java.io.OutputStream;import java.util.Random;原创 2017-09-10 19:04:31 · 184 阅读 · 0 评论 -
java poi 读取Excel
public List> readExcel(String path) { List> result = new ArrayList<>(); try { InputStream inputStream = new FileInputStream(path); //HSSFWorkbook 标识整个 Excel转载 2017-09-17 10:53:02 · 200 阅读 · 0 评论 -
java发送邮件
首先导入 mail.jarpublic class SendEmail { public void sendMail(String to,String text){ //创建连接对象,连接到邮件服务器 Properties properties = new Properties(); //设置发送邮件的基本参数原创 2017-10-02 22:19:11 · 320 阅读 · 0 评论 -
java关于比较两个字符串时的等号和equal
== : 等号比较两个纯字符串时,比较基本类型,如果值相同,则返回 true 而比较引用时,如果引用指向同一内存中的同一对象,则返回 trueequals: 只比较两个对象的内容是否相等,相等则返回truepublic void testString(){ String a = "aa"; String b = new Stri原创 2017-10-04 21:42:35 · 3909 阅读 · 0 评论 -
jsp Request获取url信息的各种方法比较
从Request对象中可以获取各种路径信息,以下例子: 假设请求的页面是index.jsp,项目是WebDemo,则在index.jsp中获取有关request对象的各种路径信息如下 String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServ转载 2017-10-11 21:10:55 · 272 阅读 · 0 评论 -
selenium初探(chromeDriver + PhantomJS)
selenium APIjava selenium 介绍chromeDriver: import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.Chro...原创 2018-03-01 19:37:12 · 3446 阅读 · 0 评论