202010-09 Java类初始化时机测试方法解析 <clinit>()方法Java类加载的初始化过程中,编译器按语句在源文件中出现的顺序,依次自动收集类中的所有类变量的赋值动作和静态代码块中的语句合并产生方法。如果类中没有静态语句和静态代码块,那可以不生成<clinit>()方法。并且<clinit>()不需要显式调用父类(接口除外,接口不需要调用父接口的初始化方法,只有使用到父接口中的静态变量时才需要调用)的初始化方法<clinit>(),虚拟机会保证在子类的<clinit>()方法执行之... 继续阅读 >
202010-09 Java向数据库插入中文出现乱码解决方案 主要解决方向,JAVA与MYSQL中编码要统一。通常采用UTF-8.这里虽然你在项目中设置了数据库采用UTF-8,但是那里不包括连接方式之类的。1.查询自身MYSQL编码方式MySQL默认编码是latin1mysql>showvariableslike'character%';+--------------------------+--------------------------+|Variable_name|Value|+--------------------------+--------------------------+|character_set_client|latin1... 继续阅读 >
202010-09 Java实现AES/CBC/PKCS7Padding加解密的方法 最近项目需要选择一套对称加密算法,来满足前后端之间的加解密操作。初步打算前端使用crypto-js来实现,后端使用java本身的加密算法实现,但遇到了一个问题:java本身只支持NoPadding和PKCS5Padding,而crypto-js提供的padding方式没有PKCS5Padding,所以不得以,前后端最终使用PKCS7Padding来实现功能.因此只能通过引入第三方jar包的方式让jave支持pkcs7padding引入依赖<dependency><groupId>org.bouncycastle</groupId><arti... 继续阅读 >
202010-09 Java spring webmvc如何实现控制反转 概述本文基于示例的方式解释控制反转,再看控制反转之前,我们先看下常规控制流程,以数据库访问为例示例并没有实际访问数据,而是基于service和dao,模拟请求数据创建项目注意:本实例基于Idea开发工具打开创建项目选项(NewProject),选择Maven,不要选择“Createfromcrchetype”,点击NextGroupID:com.example和ArtifactID:Demo,点击Next和Finish新生成的项目目录结构如下:srcmainjavaresourcestestpom.xml... 继续阅读 >
202010-09 使用java API实现zip递归压缩和解压文件夹 一、概述在本篇文章中,给大家介绍一下如何将文件进行zip压缩以及如何对zip包解压。所有这些都是使用Java提供的核心库java.util.zip来实现的。二、压缩文件首先我们来学习一个简单的例子-压缩单个文件。将一个名为test1.txt的文件压缩到一个名为Compressed.zip的zip文件中。publicclassZipFile{publicstaticvoidmain(String[]args)throwsIOException{//输出压缩包FileOutputStreamfos=newFileOutputStream("s... 继续阅读 >
202010-09 Java判断字符串是否为IP地址的方法 Java判断字符串是否为IP地址,供大家参考,具体内容如下1、代码主要就是这么几个条件非空长度符合0.0.0.0-255.255.255.255包含分隔符且个数正确四个全部是数字,且都在合理的范围内/***判断某个字符串是否是一个IP地址**@paramstr字符串*/publicstaticbooleanisIpStr(Stringstr){//非空//booleannotBlank=StringUtils.isNotBlank(str);//长度符合0.0.0.0-255.255.255.255//boolean... 继续阅读 >
202010-09 Java不可不知的泛型使用示例代码 本文介绍了Java的泛型的基本使用。1.为什么使用泛型看下面一个例子:为了说明问题,本类写的尽量简陋,请把目光主要放在类型上。/***@authorXingXiaoguan(xingrenguanxue)*/publicclassMyArrayList{privateint[]elementData;privateintsize=0;publicMyArrayList(intcapacity){elementData=newint[capacity];}//向数组中添加元素publicvoidadd(inti){if(size==elementData.length){th... 继续阅读 >
202010-09 Java泛型extends及super区别实例解析 <?extendsT>和<?superT>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概念。<?extendsT>:是指“上界通配符(UpperBoundsWildcards)”<?superT>:是指“下界通配符(LowerBoundsWildcards)”为什么要用通配符和边界?使用泛型的过程中,经常出现一种很别扭的情况。比如按照题主的例子,我们有Fruit类,和它的派生类Apple类。classFruit{}classAppleextendsFruit{}然后有... 继续阅读 >
202010-09 如何用java程序(JSch)运行远程linux主机上的shell脚本 运行远程主机上的shell脚本下面的例子是教给大家如何通过java程序,运行远程主机上的shell脚本。(我讲的不是一个黑客学习教程,而是使用用户名密码去执行有用户认证资格的主机上的shell脚本)。并且通过java程序获得shell脚本的输出。首先通过maven坐标引入JSch依赖库,我们正是通过JSch去执行远程主机上的脚本。<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version></depend... 继续阅读 >
202010-09 简单了解java集合框架LinkedList使用方法 代码如下packagecn.burce.List;importjava.util.LinkedList;publicclassLinkedListdemo{//LinkedList链表集合的特有//自身特点:链表底层实现,查询慢,增删快//子类特有功能,不能多态publicstaticvoidmain(String[]args){fun();}publicstaticvoidfun(){LinkedList<String>list=newLinkedList<>();list.addLast("abc4");//相当于addlist.add("abc1");list.add("abc2");... 继续阅读 >
202010-09 详解Java中NullPointerException异常的原因详解以及解决方法 NullPointerException是当您尝试使用指向内存中空位置的引用(null)时发生的异常,就好像它引用了一个对象一样。当我们声明引用变量(即对象)时,实际上是在创建指向对象的指针。考虑以下代码,您可以在其中声明基本类型的整型变量x:intx;x=10;在此示例中,变量x是一个整型变量,Java将为您初始化为0。当您在第二行中将其分配给10时,值10将被写入x指向的内存中。但是,当您尝试声明引用类型时会发生不同的事情。请使用以下... 继续阅读 >
202010-09 Java参数传递及值传递实现原理详解 java方法参数的传递有两种,值传递和引用传递。1.按值传递:参数类型是int,long等八大基本数据类型时,参数传递的过程是按值拷贝的过程如下代码publicstaticvoidmain(String[]args){inta=5;fun(a);System.out.println(a);//输出结果为5}privatestaticvoidfun(inta){a+=1;}2.按引用传递参数类型为引用类型,参数传递的过程采用拷贝引用的方式publicclassTest{publicstaticvoidmain... 继续阅读 >
202010-09 如何使用CountDownLatch同步java多线程 最近写了一个并发幂等测试,用线程池加入多个线程,同时启动,领导觉得这样有一定的风险,要求更严格一点,把所有的线程加入池中,然后同时启动。本来有多种方法,因为我们需要从多个线程中获取返回值,所以我们用CountDownLatch来同步多线程。CyclicBarrier也是可以同步多线程的,但因为其无法获取返回值,最后只能选择CountDownLatch.因公司的代码不便共享,这里只提供一小部分代码。CountDownLatchlatch=newCountDownLatch(... 继续阅读 >
202010-09 Java连接mysql数据库的详细教程(推荐) 该教程是面向那些不知道如何通过java连接mysql数据库的新手,所以该教程用的方法不是最优的方法,但求是最好理解的方法。需要的工具:eclipse、mysql、mysql的驱动mysql驱动链接:mysql-connector-java-5.1.7.zip如果该链接下载不了的话,可以私信我1.在eclipse中创建一个工程:jdbc2.在工程下创建lib文件夹鼠标右键点击jdbc工程——>New——>Folder、文件夹命名为lib3.导入mysql驱动解压上述连接的压缩包,找到:mysql-connecto... 继续阅读 >
202010-09 Java web spring异步方法实现步骤解析 在项目中,时常会有异步调用的需求web.xml配置<servlet><description>springmvcservlet</description><servlet-name>springMvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><description>springmvc配置文件</description><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-para... 继续阅读 >
202010-09 浅谈java多线程编程 一、多线程的优缺点多线程的优点:1)资源利用率更好2)程序设计在某些情况下更简单3)程序响应更快多线程的代价:1)设计更复杂虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般都更复杂。在多线程访问共享数据的时候,这部分代码需要特别的注意。线程之间的交互往往非常复杂。不正确的线程同步产生的错误非常难以被发现,并且重现以修复。2)上下文切换的开销当CPU从执行一个线程切换到执行另外一个线程的时候,... 继续阅读 >