java基础
大白熊_BlankBear
这个作者很懒,什么都没留下…
展开
-
单点登录大概逻辑梳理
在用户登录时一起将sessionid传进去,记录到数据库再加一个接口去获取用户ID(唯一)对应的sessionID在之后跳转或者刷新页面时调用这个接口判断当前sessionID和存储到数据库的sessionID是否是同一个。不是同一个跳转到登录页面,重新登录。是就可以进入界面...原创 2021-12-31 17:31:01 · 806 阅读 · 0 评论 -
Tomcat日志分割的三种办法
一cronolog1、安装 cronlogyum install -y cronolog httpd2、修改bin/catalina.sh文件(1) if [ -z "$CATALINA_OUT" ] ; thenCATALINA_OUT="$CATALINA_BASE"/logs/catalina.outfi改为:if [ -z "$CATALINA_OUT" ] ; thenCATALINA_OUT="$CATALINA_BASE"/logs/%Y-%m-%d...转载 2021-11-04 17:10:07 · 7069 阅读 · 1 评论 -
eclipse导入SpringBoot项目
有时候会拿到别人现成的 springboot 项目,而不是从头自己做一个。 这个时候,就需要用导入的方式来 import 这么一个项目了。本教程讲解如何用 eclipse 来导入。Eclipse 导入Springboot 项目办法:1. 菜单->File->Import->Maven->Existing Maven Projects2. 如图粘贴右上角springboot.rar 解压出来之后的目录,这个时候点一下 Refresh,下面就会跳出 pom.xml 文件3.转载 2021-05-12 16:04:09 · 3745 阅读 · 0 评论 -
IDEA 导入Springboot 项目
1.菜单->File->New->Project From Existing Sources2. 选中项目中的pom.xml3.点击OK,然后后面就一路Next就行了转载 2021-05-12 16:03:27 · 533 阅读 · 0 评论 -
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
解决办法 在项目的pom.xml里添加如下的配置信息<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> <scope>compile</scope> </dependency>..转载 2021-04-22 16:54:01 · 552 阅读 · 0 评论 -
NoClassDefFoundError和ClassNotFoundException
遇到这样一个问题:很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的。NoClassDefFoundError错误发生的原因NoClassDefFoundError错误的发生,是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。例如在运行时我们想调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出转载 2021-04-22 16:53:10 · 411 阅读 · 1 评论 -
Java中读取某个目录下的所有文件和文件夹
import java.io.File;public class Test1 { public static void main(String[] args) { String path="d:/"; File file=new File(path); File[] tempList = file.listFiles(); System.out.println("该目录下对象个数:"+tempList.length); for (int i = 0; i < tempList.转载 2021-04-22 16:51:28 · 271 阅读 · 0 评论 -
Java文件编译成功后的class文件无法执行
当时的具体情况是这样的:java文件所在的package为com.fx.s1,当时的命令行所在路径为 xx:\xxx\src\com\fx\s1\_我就是在此路径下先执行:javac Test1.java,运行成功,成功在当前路径产生Test1.class文件,编译成功。当我在此路径下继续执行:java Test1,结果就是NoClassDefFoundError。当时百思不得其解,环境变量的CLASSPATH设置成功,没有问题。那只有可能是命令行的问题。改变执行命令,在clas..转载 2021-04-22 16:50:32 · 1328 阅读 · 0 评论 -
Linux终端编译并执行Java文件
条件: 配置好jdk,搭建好java环境。shell 中操作:1、先创建java项目目录,名称project。mkdir project2、在项目中创建src和bin目录,src下用于存放 “.java” 文件,bin下存放 “ .class ” 文件。cd projectmkdir src bin3、在src下创建包com.company。mkdir -p src/com/company4、在包中编写java文件,文件名为Hello.java。vi src转载 2021-04-22 16:49:39 · 1866 阅读 · 0 评论 -
根据网络url获取文件md5值 java
private String md5ByUrl(String imgUrl){ String md5 = ""; InputStream inputStream = null; try { //url路径 URL url=new URL(imgUrl); //获取连接 HttpURLConnection connection=(HttpURLConnection).转载 2021-03-18 09:47:33 · 715 阅读 · 0 评论 -
Java对网络图片/本地图片转换成Base64编码和解码
一、将本地图片转换成Base64编码字符串/** * 将本地图片转换成Base64编码字符串 * * @param imgFile 图片目录路径 * @return */ public static String getImgFileToBase64(String imgFile) { //将图片文件转化为字节数组字符串,并对其进行Base64编码处理 InputStream inputStream ..转载 2021-03-17 15:11:56 · 1980 阅读 · 0 评论 -
java 图片文件生成MD5值
public class Md5CaculateUtil { /** * 获取一个文件的md5值(可处理大文件) * @return md5 value */ public static String getMD5(File file) { FileInputStream fileInputStream = null; try { MessageDigest MD5 = MessageDigest.g.原创 2021-03-17 15:07:06 · 2006 阅读 · 0 评论 -
Linux上如何执行java程序
想要在Ubuntu上运行java程序,可以将java程序编译成功后打包,然后在Ubuntu上用命令执行jar文件具体操作如下:1、Windows上使用eclipse编译java工程,编译完成后导出为Runnable JAR File例如,此处将test工程中的Test2文件export为MyTest2.jar文件2、Ubuntu上java环境安装①jdk官网http://www.oracle.com/technetwork/java/javase/downloads/jd..转载 2020-07-15 18:22:27 · 1386 阅读 · 0 评论 -
java姓名转拼音加处理多音字
1.下载jar包点击下载地址下载成功后添加到项目lib中image2.编写工具类import java.io.InputStreamReader;import java.util.Iterator;import java.util.Properties;import java.util.Set;import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.Han.原创 2020-07-13 19:05:57 · 4215 阅读 · 0 评论 -
JSONObject里面遍历判断键值key
一 Stringcom.alibaba.fastjson.JSONObject.containsKey(String)二 Object//遍历参数:JSONObject obj = JSONObject.fromObject(parameters);JSONObject param = obj.getJSONObject("param");Map<String, Object> conditionMap = new HashMap<String, Object.原创 2020-07-13 19:00:41 · 2014 阅读 · 0 评论 -
Linux上使用 wkhtmltopdf 将网页转成pdf
一、需求TCPDF还是存在缺点的,我在上面的文章中也说明了,比如 : 不支持 html5 , 只支持 xhtml ,无法完整的复制整个页面的内容 style支持弱,对于表单的样式无法进行更改,就是有背景色,无法去掉等 因此我寻求另外一种更好的转变方式,将用户编辑完的HTML页面直接生成PDF,一模一样,即使是样式也一模一样。各种试,各种查找,最终选择了wkhtmltpdf这个神一样的软件二、简单介绍wkhtmltopdf不是程序,而是软件。能够安装在 l...原创 2020-07-06 18:53:18 · 1302 阅读 · 0 评论 -
邮箱发送邮件JAVA实现
import java.io.File;import java.sql.Array;import java.util.Iterator;import java.util.Map;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.activation.MailcapCommandMap;import javax.原创 2020-07-06 00:25:31 · 580 阅读 · 0 评论 -
JAVA实现邮件发送
一、邮件服务器与传输协议要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。SMTP服务器地址:一般是 smtp.xxx.com,比如163邮箱是smtp.163.com,qq邮箱是smtp.qq.com。SMTP协议:通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。POP3协议:通常把处理用户pop3请求(邮件接收请求)的服务器称之为POP原创 2020-07-04 22:52:37 · 25423 阅读 · 4 评论 -
volatile面试题
一什么时候会用到 volatile ?如果需要保证多线程共享变量的可见性时,可以使用volatile 来修饰变量。转载 2020-06-30 23:39:03 · 749 阅读 · 0 评论 -
synchronized面试题
一 什么会需要synchronized?什么场景下使用synchronized?如上图所示,比如在王者荣耀程序中,我们队有二个线程分别统计后裔和安琪拉的经济,A线程从内存中read 当前队伍总经济加载到线程的本地栈,进行 +100 操作之后,这时候B线程也从内存中取出经济值 + 200,将200写回内存,B线程刚执行完,后脚A线程将100 写回到内存中,就出问题了,我们队的经济应该是300, 但是内存中存的却是100。1.synchronized 怎么解决这个问题的?在访问竞态资源时加..转载 2020-06-29 22:59:39 · 4119 阅读 · 0 评论 -
JAVA中有关引用
在JDK 1.2版之前,Java里面的引用是很传统的定义: 如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称该reference数据是代表某块内存、某个对象的引用。这种定义并没有什么不对,只是现在看来有些过于狭隘了,一个对象在这种定义下只有“被引用”或者“未被引用”两种状态,对于描述一些“食之无味,弃之可惜”的对象就显得无能为力。譬如我们希望能描述一类对象:当内存空间还足够时,能保留在内存之中,如果内存空间在进行垃圾收集后仍然非常紧张,那就可以抛弃这些对象——..原创 2020-06-23 22:53:35 · 146 阅读 · 0 评论 -
Executor框架
前言在Java中,使用线程来异步执行任务。Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源。同时,为每一个任务创建一个新线程来执行,这种策略可能会使处于高负荷状态的应用最终崩溃。Java的线程既是工作单元,也是执行机制。从 JDK 5 开始,把 工作单元 与 执行机制 分离开来。工作单元 : Runnable Callable 执行机制: Executor框架 Executor框架简介E转载 2020-06-21 22:38:21 · 138 阅读 · 0 评论 -
线程池
前言Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。但是,要做到合理利用线程池,必须对其实现原理了如指掌。线程池的实转载 2020-06-21 22:37:21 · 97 阅读 · 0 评论 -
并发工具类
简介在JDK的并发包里提供了几个非常有用的并发工具类。 提供并发流程控制的工具类 CountDownLatch CyclicBarrier Semaphore 提供了在线程间交换数据的工具类 Exchanger 本文会配合一些应用场景来介绍如何使用这些工具类。等待多线程完成的CountDownLatchCountDownLatch 允许一个或多个线程等待其他线程完成操作。假如有这样一个需求:我们需要解析一个Excel里多个sheet的数据,此时可以考虑使用转载 2020-06-21 22:36:40 · 109 阅读 · 0 评论 -
12个原子类基本操作
简介官方介绍当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值。比如变量 i = 1,A 线程更新 i+1,B 线程也更新i+1,经过两个线程操作之后可能 i 不等于 3,而是等于 2 。因为 A 和 B 线程在更新变量 i 的时候拿到的 i 都是 1,这就是 线程不安全的更新操作,通常我们会使用 synchronized 来解决这个问题,synchronized 会保证多线程不会同时更新变量 i。而 Java 从 JDK 1.5 开始提供了 java.util.conc转载 2020-06-21 22:35:26 · 200 阅读 · 0 评论 -
JAVA 异常 简单问题
JAVA语言如何进行异常处理?答: Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。关键字: throws,throw,try,catch,finally分别代表什么意义?Java的异常处理是通过5个关键词来实现的: try、 catch、 throw、 thro..原创 2020-06-12 00:16:02 · 127 阅读 · 0 评论 -
JAVA基础知识点
1、作用域public,private,protected,以及不写时的区别答: 区别如下:作用域 当前类 同一package 子孙类 其他packagepublic √ √ √ √protected √ √ √ ×friend...原创 2020-06-12 00:05:46 · 316 阅读 · 0 评论 -
JAVA 集合一些小知识
一 Java 集合类框架的基本接口有哪些Collection:代表一组对象,每一个对象都是它的子元素。Set:不包含重复元素的 Collection。无法拥有重复元素,内部排序List:有顺序的 collection,并且可以包含重复元素。Map:可以把键(key)映射到值(value)的对象,键不能重复,value可以多值Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└Set└Map│├Has原创 2020-06-11 23:40:00 · 150 阅读 · 0 评论 -
Overload和Override
1、相同点方法重写override与方法重载overload都是实现多态的方式。2、不同点/区别①方法重载overload(1)方法名必须相同,(2)但参数列表必须不同,即方法的参数类型不同、参数个数不同、参数顺序不同,或三者都不同,与反回值类型无关。(3)重载的方法是可以改变返回值类型的。同时,如果两个方法的参数列表完全一样,是不能通过让他们的返回值类型不同来实现重载的②方法重写override(1)参数列表必须完全与被重写方法的相同;(2)返回类型必须完全与被重写方原创 2020-06-11 23:24:15 · 195 阅读 · 0 评论 -
JAVA中对象初始化时各模块的执行顺序
各模块的执行顺序基类静态代码块,基类静态成员字段(按代码先后顺序)(第一次加载类是执行)派生类静态代码块,基类静态成员字段(按代码先后顺序)(第一次加载类是执行)基类普通代码块,基类普通成员字段(按代码先后顺序)基类构造函数派生类普通代码块,基类普通成员字段(按代码先后顺序)派生类构造函数验证实例代码运行结果...原创 2020-06-08 00:15:28 · 208 阅读 · 0 评论 -
有关String的一些内容
一.String类Java.lang.StringpublicfinalclassStringimplementsjava.io.Serializable, Comparable<String>, CharSequence {/** The value is used for character storage. */privatefinalcharvalue[];/** Cache the hash code for ...原创 2020-06-07 00:19:12 · 133 阅读 · 0 评论 -
JAVA 给图片加水印(自适应)
需要 Graphics2D对图片进行处理 /** * 给图片添加水印文字、可设置水印文字的旋转角度 * * @param logoText * 水印文字 * @param srcImgPath * 源图片路径 * @param targerPath * 目标图片路径 * @param degree * ...原创 2020-05-26 23:35:39 · 1803 阅读 · 1 评论 -
JAVA 给 PDF加水印
需要用到itextpdf-5.5.5.jar源码如下入参为输入文件,输出文件 ,水印内容public static void waterMark(String inputFile, String outputFile,String waterMarkName) {// PdfReader reader = null; PdfStamper stamper = null; try { reader = new Pdf...原创 2020-05-26 23:30:45 · 672 阅读 · 0 评论 -
值传递和引用传递(尽可能完整,不定时更新)
0.前言谈到传递,先说一下函数参数传递形参:定义方法时写的参数实参:调用方法时传递的具体参数(参数传递本质上都是值传递)之后说一下java中的数据类型基本数据类型 整形 byte(8位 1字节 -128~127)short (16位 2字节 -32768~32767) int(32位 4字节-2^31-1~2^31) l...原创 2018-11-08 23:18:30 · 101 阅读 · 0 评论