Java
文章平均质量分 64
本专栏文章,主要介绍Java语言基础知识
TechGenius
Just DO IT.
展开
-
【JDK原理】类加载约束条件
JVM(Java虚拟机)是Java程序的运行环境,它负责将Java字节码加载到内存中并执行。在JVM中,类加载是一个重要的过程,它负责将类的字节码加载到内存中,并对类进行验证、准备和解析,最终生成可执行的Java类。原创 2024-03-19 18:45:45 · 226 阅读 · 0 评论 -
【经验篇】防止业务多次操作方案
简单说明原创 2021-11-30 11:10:41 · 1681 阅读 · 2 评论 -
【经验篇】记如何排查Linux服务器CPU使用率过高的问题
问题描述在某一天系统更新上线一个版本后,运维人员通过监控发现Tomcat出现CPU使用率超过200%的问题,导致监控系统频繁告警。排查过程我们的Tomcat是部署在linux环境中,下面的排查过程均在linux下进行。1. 查看后台服务通过查看Tomcat的后台日志,发现日志正常打印,未发现异常信息。2. 查看服务器信息2.1 找出耗CPU的进程使用top命令查看特定用户(user1)的内存、cpu及各进程的信息:[root@localhost ~]# top -u user1使用原创 2021-11-02 11:41:07 · 10115 阅读 · 1 评论 -
【经验篇】记SpringBoot+Swagger下载Excel文件打开错误的问题
背景描述需求描述: 实现一个报表查询功能,可以根据查询条件导出Excel文件。技术栈: SpringBoot + Swagger代码示例public void exportExcel(UserQuery query, HttpServletResponse response) { // 1. 查询数据 List<UserStageInfo> userStageList = sevice.getUserStageList(query); // 2. 生成Excel Workbook原创 2021-10-21 11:23:22 · 3035 阅读 · 0 评论 -
【Java知识点】Java中isAssignableFrom、instanceof、isInstance
仅作记录,实践出真知。基本介绍isAssignableFrom:使用示例:Class1.isAssignableFrom(Class2)释义: ① 判断Class1和Class2是否相同。 ② Class1是否是Class2的父类或者接口。instanceof: 使用示例:object instanceof TypeName释义: 判断一个对象实例是否是一个类或接口或其子原创 2017-11-20 18:01:30 · 458 阅读 · 0 评论 -
【JNI调用DLL动态库】Java使用JNI调用DLL动态链接库学习记录
前言本篇文章主要记录如何使用JNI一步步完成Java调用C/C++类库,仅作学习记录,案例很简单,步骤也很明确,会通过详细截图的形式来进行演示。JNI也就是Java Native Interface的简称,中文是“Java本地调用”。通常在Java程序中的函数可以调用Native语言写的函数,Native一般指的是C/C++编写的函数。使用JNI的目的就是为了屏蔽不同操作系统平台的差异性,原创 2017-10-17 13:49:31 · 3912 阅读 · 0 评论 -
【Java知识】Google protobuf中的ByteString如何转换成Java String
背景描述 同一台服务器有一台C++服务端,部署了一个Java Web服务。 Java API的作用是将C++的协议转换成Java服务可用的Java Bean,其中有一步转换是将二进制数据转换为google protobuf协议,在转换过程中,遇到了问题,ByteString转换为String时出现乱码。解决方案public static String bytesToString...原创 2018-03-09 09:55:04 · 34409 阅读 · 11 评论 -
【Java总结】如何读取Jar包中文件内容
需求说明我想利用标准输入流、输出流写文件我想在开发模式下读取Properties文件,想打成可执行Jar包时读取Jar包内的Properties文件需求分解与实现1. 标准输入流写文件public static final InputStream in:"标准"输入流。示例:通过字符缓冲流来获取键盘录入的数据,落入文件import java.io.Buffered...原创 2018-02-23 10:52:46 · 19782 阅读 · 7 评论 -
【TCP Loop Connect】TCP回环连接
业务场景描述TCP回环连接,通俗点讲就是,TCP自己连上了自己。 是不是有点不可思议?!好了,先说下业务场景。 同一台服务器上部署两个服务,一个是基于C++ - ACE库编写的服务端,一个是基于Java-Netty编写的客户端。服务端bind端口20002,CLIENT端提供重连机制。服务端与客户端进程间通过Socket通信,服务端是择时启动和运行,客户端是全天候运行,客户...原创 2018-04-20 17:27:10 · 3907 阅读 · 0 评论 -
【经验篇】Java WEB应用如何重启Tomcat
Java Web应用中如何执行脚本重启Tomcat服务,包含两部分:启停脚本、调用Java代码。原创 2018-09-11 19:25:57 · 4744 阅读 · 2 评论 -
【Mybatis】解决Oracle查询处理in条件超过1000条的问题
直接上SQL吧,思路很简单:select * from test_tablewhere 1 = 1 <!-- IdList --> <if test="IdList != null and IdList.size > 0"> AND PK_ID IN <!-- 处理in的集合超过1000条时Oracle不支持的情况 --> <tri...原创 2018-11-20 20:49:05 · 6975 阅读 · 2 评论 -
【Mybatis】如何在Mybatis XML文件中使用枚举变量
背景说明我们程序中经常将一些状态值归类成枚举类,并不想在XML中将枚举值写死,于是出现了这篇文章,参考了很多文章,找到一种最简单的方式,记录下来,与君分享。枚举类package com.test.constant;public enum AnimalEnum { DOG("dog"), CAT("cat"), private String type; ...原创 2018-11-20 21:02:01 · 10968 阅读 · 0 评论 -
[Java基础]Java接口
写在前面有时发呆,会在心里给自己提些问题,哇擦,好无耻,基础好差,Java的一些基础知识居然差不多都还给老师了,遂下定决心,把一些知识点再回顾总结下!问1:接口有什么作用?在知乎上看到的一个隐喻解释很形象,通俗易懂,这里引用一下,原文见:https://www.zhihu.com/question/20111251接口就是个招牌。 比如说你今年放假出去杭州旅游,玩了一上午,你有点饿了,突然看到前面原创 2017-08-17 00:13:04 · 410 阅读 · 0 评论 -
【JDK源码学习】ResourceBundle使用详解
Base Info类名:ResourceBundle 全名:java.util.ResourceBundle类的用处这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念,两者都是一起出现的。可以说,国际化的目的就是为了实现本地化。若我们的程序是面向国际的(这也是软件发展的一个趋势),那么使用的人群必然是多语言环境的,实现国际化就非常有必要。 ResourceBundle可以帮助我们原创 2017-08-01 20:50:29 · 778 阅读 · 1 评论 -
【Java】双重检查锁定(Double-checked locking)与延迟初始化(Initialization on demand holder)
转载自:http://www.infoq.com/cn/articles/double-checked-locking-with-delay-initialization/#anch102221需求来源在java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。转载 2017-03-04 15:53:33 · 1239 阅读 · 0 评论 -
浅谈Java中的hashcode方法
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法:1public native int hashCode(); 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的转载 2015-11-24 16:19:48 · 391 阅读 · 0 评论 -
Java类中重写toString方法
默认方法当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串。java中的所有类默认都有一个toString()方法。默认情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的是此对象的类名(包名+类名)和此对象对应内存的首地址,默认输出例子:如果想自定原创 2015-11-24 10:16:21 · 11639 阅读 · 0 评论 -
最详细的Log4j使用教程(二)
Log4j 为指定类记录日志#给指定类设定等级和目的地log4j.logger.包名.类名=debug,A1 #每天建立一个日志文件,格式为‘文件名-yyyy-MM-dd.log’log4j.appender.A2=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.A2.file=c:/ccsLoglog4j.a原创 2015-12-11 16:48:29 · 2155 阅读 · 1 评论 -
MyBatis+MySQL 返回插入记录的主键ID
摘要 Hibernate中获取新插入记录的对象id非常容易,通过其持久化对象就能完成。而Mybatis中有点复杂,本文转载了一篇文章,讲述mybatis中获取插入记录的自增长id,经测试在mysql中有效,其他数据库未知。需求 使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。方法下面说两种方法,MyBatis+MySQL 返回插入记录的主键ID: 第原创 2016-05-04 17:33:02 · 2474 阅读 · 0 评论 -
FreeMaker解析Word模板(含图片)生成Word文档
需求描述我需要将word的模板,按照相应栏位以及数据库的信息,动态生成一个word文档到本地。word模板仅支持word2003,并且包含图片。工具技术IDE:eclipse JDK:1.7 Freemaker:2.3Word模板:准备工作:Word->FTL文件(很重要)将需要用到图片的地方,全部使用真实图片代替 然后另存为xml文档 然后使用工具firstobject XML Editor原创 2016-07-21 22:03:46 · 5933 阅读 · 2 评论 -
如何在Eclipse中如何自动添加注释和自定义注释风格
背景简介丰富的注释和良好的代码规范,对于代码的阅读性和可维护性起着至关重要的作用。几乎每个公司对这的要求还是比较严格的,往往会形成自己的一套编码规范。但是再实施过程中,如果全靠手动完成,不仅效率低下,还难以保证真正的符合规范。所以结合IDE环境,自动生成注释,还是很有必要的。今天我们就说一下,如何使用Eclipse给我们提供的自定义代码模版的功能来作业。设置注释模板设置注释...原创 2016-07-22 16:37:42 · 42154 阅读 · 5 评论 -
java.security.AccessControlException: access denied
今天在写一个解压缩的程序时,设想能够在解压或压缩之前,如果已经存在该文件了,那么就删除,结果真的存在该文件时,抛了异常:Exceptionjava.security.AccessControlException: access denied (java.util.PropertyPermission LOG_INI write) at java.security.AccessCon原创 2016-07-24 00:33:58 · 3546 阅读 · 0 评论 -
Linux下Tomcat开机自动启动
Linux下tomcat开机自动启动有两种方法,一种是简单,一种是复杂而又专业的,使用shell脚本要实现,我们一般推荐shell脚本启动方式。众所周知,在Linux中设置开机自启动的服务,需要在/etc/rcX.d下挂载。除此之外还需要在/etc/init.d下些启动脚本。其实很简单,先export出所需要的环境变量,例如JAVA_HOME,JRE_HOME, CATALINA_HOME, CAT原创 2016-07-26 09:48:00 · 2421 阅读 · 0 评论 -
使用eclipse工程导出jar包
首先,要确认自己写的程序错误! 打包步骤:打开导出菜单界面 选择项目 -> 右键Export -> 弹出导出界面 选择Java -> JAR file -> Next Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间; 这里有几个选项:* Export generated class files and原创 2016-07-29 11:08:26 · 27485 阅读 · 0 评论 -
[Java]list集合为空或为null的区别
简述判断一个list集合是否为空,我们的惯性思维是判断list是否等于null即可,但是在Java中,list集合为空还是为null,这是两码事。引用举个形象的例子,我有一个空着的水杯(list),而你没有,那你是null,我的size为0。你想装水就需要自己去买个水杯(new ArrayList();),但是我就可以直接装水(list.add(水))。你要是没有杯子直接倒水,水就流出去啦(空指针异原创 2016-08-30 22:09:04 · 30836 阅读 · 16 评论 -
Eclipse中通过Tomcat运行JavaWeb项目发生内存溢出:java.lang.OutOfMemoryError: PermGen space 错误的解决方案
运行JavaWeb项目的时候抛出异常: Exception in thread “main” Java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source)原创 2016-11-01 15:24:12 · 470 阅读 · 0 评论 -
Java类中重写equals()方法
默认方法Object 类中的equals()方法实际上也是可以使用的,但是其默认使用的是按地址进行比较,并不能进行内容比较的。那么我们有时需要比较两个对象就得重写equals()方法。package tianque.object_high;class Students{ private String name; private int bookNum; public原创 2015-11-24 10:30:52 · 1093 阅读 · 1 评论