java基础
文章平均质量分 92
詹姆斯gosling
高级Java
展开
-
二维数组的声明赋值和遍历
二维数组的声明赋值和遍历 java编程中经常使用的数组可能也就是一位数组偏多,二维数组使用的比较少,今天在刷面试题的时候看到一个关于二维数组的变成题目,使用上有点生疏,所以记录一下二维数组的声明和赋值类型[] [] 变量名 = new [][] (行数,列数)ps: int array[][] = new [3][5]; //创建了一个3行5列的二维数组,默认值为0;类型[]...原创 2019-06-16 11:54:50 · 785 阅读 · 0 评论 -
maven打包后出现Can not find ResultMap “xxxx“
最近在项目打包发布的时候老是出现Can not find ResultMap "xxxx"之类的错误,可是全局搜索发现映射文件中是存在此返回的映射结果集的。最后也是查看了很多资料,总算找到了解决方法:1,通过clean install的方式重新打包,如果不行,2,通过rebuild强制重新更新编译代码3 ,再install打包,这下基本上就解决了上述中出现的情况。...原创 2020-09-25 21:43:49 · 238 阅读 · 0 评论 -
Tomcat/conf/server.xml文件中docBase和path的说明
Tomcat的项目部署方式有以下三种:1、直接把项目复制到Tomcat安装目录的webapps目录中,这是最简单的一种Tomcat项目部署的方法。2、在tomcat安装目录中有一个conf文件夹,打开此文件夹,其中包含配置文件server.xml,打开配置文件,并在和之间插入如下语句。 其中,docbase是web应用和本地路径,path是tomcat访问这个应用的URL路径。3、在conf目录中,在Catalina\localhost(此处需要注意目录的大小写)目录下新建一个XML文件,任意命转载 2020-09-07 22:35:32 · 1670 阅读 · 1 评论 -
java通过文件路径下载文件的工具类
public class DownloadFileUtils { public static void download(HttpServletResponse response, String path) { //文件在服务器的路径 InputStream inputStream = null; OutputStream out = null; try { //根据文件在服务器的路径读取该文件转化为流原创 2020-08-08 19:49:19 · 292 阅读 · 0 评论 -
java调用.net的webService接口
Java调用WebService2import org.apache.axis.client.Call;import javax.xml.namespace.QName;import java.util.*;/**@author :xzr@version :1.0.0@date :2020/3/23@description :WebService/public class WebServiceUtils {/*webService链接地址*/static Str原创 2020-07-27 23:51:37 · 466 阅读 · 0 评论 -
用String接收前台传过来的字符乱码解决方法
今天在修改bug的时候有个错误时保存到数据库中的字符是乱码文件,debug之后发现在Controller层传进来的就是乱码,网上看到好几个解决方案,不过都不太满意,说是用decode转码,发现还是会有一些小问题。所以直接在Controller层用map接收了。key保存变量名,value保存变量值,轻松解决了问题。...原创 2020-06-09 23:51:42 · 907 阅读 · 0 评论 -
java对象和xml格式数据的相互转换
1,首先需要几个jar包2,在需要转换的实体类中添加注解3,添加方法将java对象转换为xml数据原创 2020-04-06 17:41:05 · 564 阅读 · 0 评论 -
解析xml文件最常用的方法
Dom4j是目前最流行、最好用的XML解析工具,解析XML的速度最快。操作步骤:1:创建SAXReader:SAXReader reader = new SAXReader(); 2:创建文件输入流打开xml文件:InputStream in = new FileInputStream("XXX.xml");3:通过reader和输入流读取xml文件到内存创建Document对象:D...转载 2020-03-14 11:08:07 · 327 阅读 · 0 评论 -
log4j日志文件不打印,报错WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory)的解决
今天在执行项目的时候,并没有日志文件打印出来,可我分析了一下,log4j.properties 的属性配置文件也有了,log4j的jar包也在里面,为什么会报错呢?后来发现原来是log4j的属性文件打错了,写成了lo4j.properties。经过修改后可以正常打印日志...原创 2019-12-01 16:33:54 · 966 阅读 · 1 评论 -
发起请求后网页响应的三种方式
1、一般我们通过输入网址可以返回页面给我们,这里看到的页面其实就是html(也包括jsp),这是网页响应的第一种方式2、其实我们在请求网页的时候,按下F12,选择network,我们可以看到其实简单的一次请求背后,包含很多的请求其中其实包含许多的js请求。这些请求不是我们发起的,而是因为我们的第一个请求引起的二次请求。这时候返回的就是json字符串类型的数据了。我拷贝了其中一个js的请求路...原创 2019-10-27 22:24:39 · 898 阅读 · 0 评论 -
分库分表的情况下,如何创建全局的id
在系统中有时候我们需要创建全局的唯一id,有以下几种方式可以创建1.通过uuid设置(不方便查找和记忆)2.通过redis(增加了系统的复杂性,维护成本升高)3.通过两台以上的数据库实例服务器创建不重复的id,(增加了硬件的成本投入)4.美团开源项目(值得借鉴的开源项目生成全局id)...原创 2019-10-24 23:49:42 · 121 阅读 · 0 评论 -
爬取网页的几种简单的java爬虫方式
爬虫:爬取其他网页内容到自己网站的操作。方式一:httpclent关键代码String url ='xxx';HttpClent hc = new HttpClent();方式二:Jsoup原创 2019-10-19 17:21:26 · 823 阅读 · 0 评论 -
jsp和servlet之间的区别和关联
随着目前技术的更新迭代,前后端分离的项目已经逐渐流行。传统的项目中负责前端数据展示的jsp用的越来越少了。之所以写一篇关于jsp和servlet的博客,主要是想了解一些最开始底层是怎么处理前后端的交互的数据的。虽然我们的spring,springMvc框架已经封装好了如何处理一个请求的过程,但通过对jsp和servlet的学习我想我们能更好的了解javaweb中前后端交互数据的原理过程。jsp:...原创 2019-10-17 22:57:32 · 519 阅读 · 0 评论 -
使用java程序生成二维码以及中文乱码解决问题
因为是maven工程,所以先去idea中配置了maven的选项。添加了生成二维码所需要的依赖。<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <ve...原创 2019-10-13 15:44:48 · 4005 阅读 · 1 评论 -
java8的新特性
java8的新特性之一:1.1底层数据结构的改变:主要体现在hashmap集合的改变。当hashmap中链表的长度超过8,总容量超过64时,链表会转化为红黑树的数据结构类型。减少我们在链表出现多个碰撞时的查询添加元素的时间。首先我们来说说hashmap,当我们put一个元素的时候,该元素通过hashcode()方法生成一个hash码,对该hash码进行hash算法的运算生成一个数组的索引...原创 2019-06-29 23:14:59 · 68 阅读 · 0 评论 -
java中的clone()方法详解
今天在看阿里巴巴java开发手册时看到这么一个规范不太理解因为平时clone方法也用的比较少。所以去看了下java的api文档。总结了一下java中clone()方法。我们在对象的赋值其实就是复制了引用对象的内存地址:@Testpublic void testassign(){ Person p1=new Person(); p1.setAge(31); p1.setName("...转载 2019-07-10 22:14:28 · 435 阅读 · 0 评论 -
向idea中导入spring源码详解
因为spring源码是通过gradle工程构建的。所以在我们从github官网克隆完项目之后,还需要通过gradle编译才行。如果没有下载gradle,先去下载安装包,gradle官网下载安装地址如下:https://gradle.org/next-steps/?version=4.8.1&format=all建议通过某盘下载,官网速度太慢。之后就是配置环境变量,过程和我们配置jdk差...原创 2019-07-07 12:24:16 · 1290 阅读 · 0 评论 -
泛型通配符的使用
泛型是java1.5后推出的新特性之一。通过使用泛型,我们可以更加灵活的指定java中代码的类型,从而程序可以更加灵活。泛型通配符一般有三种,第一种是<?> 无限定通配符;第二种<? extends E> 固定上限通配符,类型只能是E或E的子类;第三种<? super T> 固定下限通配符,类型只能是T或T的父类;public class FxTest...原创 2019-07-17 22:00:19 · 313 阅读 · 0 评论 -
死锁产生的四个必要条件,以及处理方法
什么是死锁?首先介绍一下死锁的概念:两个或多个进程之间因为争夺资源(可能是同一个资源,也可能是彼此占用的资源)而进入循环等待而产生的阻塞现象。死锁产生的四个必要条件互斥条件:一个进程占有一个资源后进行排他性控制,即另一个进程也请求此项资源时,而进入等待的过程请求和保持条件:一个进程在保持对一个资源的占用后,又请求另一个资源。而进入的等待过程不可剥夺条件:即一个进程占用某个资源时,...原创 2019-08-20 21:42:45 · 1127 阅读 · 0 评论 -
tomcat启动超时报错解决办法
今天在启动项目的时候发现启动服务超时了,错误提示如下图:在server中设置服务的启动时间为999,问题解决。原创 2019-09-19 00:00:34 · 349 阅读 · 0 评论 -
java面向对象设计的六大原则
1、单一职责原则概念: 每个类都应该只负责自己负责的工作。不应该涉及其他功能领域的职责。2、开闭原则概率:对外扩展开放,对内修改关闭的原则3、里式代换原则概率:尽可能使用基类作为对象的类型,可以让程序更加灵活,使用基类的地方都能通过子类去代换4、依赖倒转原则概念: 抽象不应该依赖细节,细节应该依赖抽象。5、接口隔离原则概念: 使用多个专门的接口,而不是单一的总接口(这个原则我觉得...原创 2019-10-10 22:39:57 · 100 阅读 · 0 评论 -
java中的移位运算符
java中的移位运算符1.<<左移运算符2.>>右移运算符3.>>>无符号右移运算符简单的来说就是对我们数据进行二进制的移位。比如十进制的2用二进制来表示就是00000010,如果我们用左移运算符移动三位就变成00010000,实际上移动两位就是乘以了2的3次方。下面是代码所以我们简单的理解为左移运算符就是乘以2的n次方,n代表移动的位数。右移...原创 2019-06-16 21:51:04 · 103 阅读 · 0 评论