Java核心
文章平均质量分 59
JavaSE和JavaEE核心,难点
香气袭人知骤暖
但行好事,莫问前程
展开
-
SpringBoot 配置拦截器和监听器
SpringBoot注册Servlet三大组件【Servlet、Filter、Listener】原创 2023-01-28 14:49:31 · 398 阅读 · 0 评论 -
SpringBoot框架介绍及使用
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot使用“习惯优于配置”的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。原创 2023-01-28 14:15:08 · 1064 阅读 · 0 评论 -
PostGIS总结
PostGIS总结转载 2022-08-12 22:21:38 · 88 阅读 · 0 评论 -
java 如何实现深拷贝
1、什么叫Java浅拷贝? 浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。2、什么叫Java深拷贝? 深拷贝复制变量值,对于引用数据,则递归至基本类型后,再复制。深拷贝后的对象与原来的对象是完全隔离的,互不影响,对一个对象的修改并不会影响另一个对象。深拷贝相比于浅拷贝速度较慢并且花销较大。3、Java浅拷贝和原创 2022-05-22 22:25:33 · 15295 阅读 · 0 评论 -
stream.forEach()遍历集合时的跳出操作
一. 先说结论1)普通for循环和增强for循环: break跳出整个for循环,使用continue跳出本次循环。2)stream.forEach()循环:1.处理集合时不能使用break和continue中止循环;2.可以使用关键字return跳出本次循环,并执行下一次遍历。3.不能跳出整个forEach的循环。二.代码验证public static void main(String[] args) throws Exception{ List<String>原创 2022-05-08 11:29:33 · 14570 阅读 · 0 评论 -
静态方法不可以被重写(override)
今天看了几个题目,感觉基础比较扎实了,但是结果…话不多说记录一下.一: 静态方法可以被重写吗?静态的⽅法可以被继承,但是不能重写。如果⽗类中有⼀个静态的⽅法,⼦类也有⼀个完全一样的方法,那么该⼦类的⽅法会把⽗类的⽅法隐藏,⽽不是重写。通俗的讲就是⽗类的⽅法和⼦类的⽅法是两个没有关系的⽅法,具体调⽤哪⼀个⽅法是看是哪个对象的引⽤;这种⽗⼦类⽅法也不在存在多态的性质。《Java编程思想》中这样提"到“只有普通的⽅法调⽤可以是多态的”。public class BeanInfoTest { publ原创 2022-05-05 19:58:14 · 5002 阅读 · 0 评论 -
Tomcat web应用服务器设计分析
1.常见web服务器webLogic:oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。webSphere:IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。JBOSS:JBOSS公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。Tomcat:Apache基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范。开源的,免费的。2.Web服务器工作原理2.1 Http工作原理从图上你可以看到,这个过程是原创 2022-05-04 16:18:57 · 1038 阅读 · 0 评论 -
Spring核心方法 refresh 解析
refresh()是 Spring 最核心的方法,没有之一。public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { //刷新前的预处理; prepareRefresh(); //获取BeanFactory;默认实现是DefaultListableB原创 2022-05-02 08:29:59 · 3203 阅读 · 1 评论 -
Jaskson处理复杂的泛型对象-非最优方案
添加链接描述翻译 2021-01-12 23:44:28 · 118 阅读 · 0 评论 -
为什么要使用RESTFUL风格?
Representational State Transfer 表现层状态转化( 资源定位及资源操作) 表象层面说就是通过get,post,put,delete方式来实现前后台通信的一种轻量级,跨平台,跨语言架构设计风格的web服务 http不仅仅是传输协议,更是一种应用协议。REST,即Representational State Transfer的缩写。意为是"表现层状态转化"。RESTful表示一种风格,理解REST前需要理解资源,何谓资源,广义的资源...原创 2020-09-18 11:07:30 · 1177 阅读 · 0 评论 -
解决端口被占用问题(Windows版本)
step1:当我们运行项目的时候,控制台打印出现error:此时会显示端口地址已经被占用,端口占用的解决办法:step2:打开cmd,命令提示符,输入netstat -ano 会显示所有已经在运行的端口,step3:输入你想要查的正在占用的端口号,netstat -ano|findstr 8080step4:此时会显示端口8080对应的tcp号。step5:输入命令taskkill /f /t /im 19644此时成功终止了8080端口的运行进程。step6:此...原创 2020-09-10 09:43:36 · 397 阅读 · 0 评论 -
CSDN怎么转载别人的博客
参考博客原址:http://blog.csdn.net/bolu1234/article/details/51867099转载CSDN博客步骤:1.CSDN博客页面右键,点击【检查】 点击检查后,页面右侧出现html代码,如下图 2.如果需要转载全文,则在html代码下侧点击选中article_content 即可,会在代码框中自动选中article_content相关代码 3.在选中html的article_content代码处右键,点击【Copy】,再点击【Copy outerHT原创 2020-09-09 20:48:32 · 119 阅读 · 0 评论 -
Java中throws和throw的区别
当然,你需要明白异常在Java中式以一个对象来看待。并且所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,但是一般情况下Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行。直接进入正题哈:1.用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常。1.1 throw是语句抛出一个异常。语法:throw (异常对象); throw e;1.2 throws是方法可能抛出异常的声原创 2020-09-05 22:46:05 · 701 阅读 · 0 评论 -
Tomcat部署项目方式和IDEA整合tomcat
如何部暑 web 工程到 Tomcat 中第一种部署方法:只需要把 web 工程的目录拷贝到 Tomcat 的 webapps 目录下即可。第二种部署方法:找到 Tomcat 下的 conf 目录\Catalina\localhost\ 下,创建如下的配置文件:<!--Context 表示一个工程上下文 path 表示工程的访问路径:/abc docBase 表示你的工程目录在哪里 --> <Contextpath="/abc"docBase="E:\book"/>.原创 2020-09-04 21:22:30 · 357 阅读 · 0 评论 -
Servlet基本用法总结
一、ServletConfig在Servlet的配置文件web.xml中,可以使用一个或多个标签为servlet配置一些初始化参数。 <servlet> <servlet-name>HelloServlet2</servlet-name> <servlet-class>HelloServlet</servlet-class> <init-param> <原创 2020-09-02 20:32:49 · 975 阅读 · 0 评论 -
Java数组的常用方法
声明数组String[] aArray = new String[5];// arrays[0] = "1";//向数组中添加元素String[] bArray = {"a","b","c", "d", "e"};String[] cArray = new String[]{"a","b","c","d","e"};打印数组int[] intArray = { 1, 2, 3, 4, 5 };String intArrayString = Arrays.toString(intAr.原创 2020-09-01 13:35:08 · 169 阅读 · 0 评论 -
java父类强制转换为子类
用Dom4j解析xml时,将node强制转换为子类element并成功调用了子类方法,印象中父类是不可调用子类方法的,测试过程中使用了示例一,过程中报 ClassCastException异常,特此记录一下。示例一(错误示例)Father f = new Father();Son s = (Father)f;//出错 ClassCastException分析:创建一个父类的实例,想要强制把父类对象转换成子类的,不行!通俗的想,真正当爹的永远不可能装儿子。示例二Father f = new S原创 2020-08-29 11:44:19 · 1344 阅读 · 0 评论 -
Xpath表达式的基本使用总结
Xpath表达式语法:https://www.runoob.com/xpath/xpath-syntax.html简单说,xpath就是选择XML文件中节点的方法。所谓节点(node),就是XML文件的最小构成单位,一共分成7种。- element(元素节点)- attribute(属性节点)- text (文本节点)- namespace (名称空间节点)- processing-instruction (处理命令节点)- comment (注释节点)- root (根节点)一、xp原创 2020-08-29 11:13:09 · 1326 阅读 · 0 评论 -
一位资深程序员大牛给予Java初学者的学习路线建议
java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。 在大家看之前,我要先声明两点。1、由于我本人是Java后端开发出身,因此所推荐的学习内容...转载 2020-08-27 21:42:24 · 235 阅读 · 0 评论 -
手写spring IOC容器
标题自定义IOC容器的基本架构:基本思路解析xml配置文件根据配置的生成相应的对象将对象存入IOC容器IOC容器实现图解IOC容器实现0.将配置文件ApplicationContext.xml放在根目录下:<?xml version="1.0" encoding="UTF-8"?><beans> <bean id="address" class="com.example.xmlsax_reader.entity.Address">原创 2020-08-27 13:53:03 · 196 阅读 · 0 评论 -
Java中getResourceAsStream的用法(取路径)
Maven项目根目录:它编译的路径直接位于classes下面,这个路径其实就是classPath的路径,所以,在resources 根目录下的配置文件其实就是 classPath的路径。Java中的getResourceAsStream有以下几种:T.Class.getResourceAsStream(path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。原创 2020-08-27 13:13:16 · 6233 阅读 · 0 评论 -
作为一名程序员该如何向别人提问题
向别人请教问题,要说明:问题的背景你的能力你遇到啥问题?做了什么尝试?你有什么猜想?如果一个问题,你用一句话就能描述清楚,那说明你没有自己的思考,这种情况下,不适合问别人,而是去问百度/谷歌。希望我们都可以学会提问题,学会提一个好的问题!不要每次提问的时候只发一句:在吗?或者发两句:在吗?有个问题要请教一下?然后有时候看到消息还不得不回复,在,有什么问题,可以一起探讨交流。其实有有问题需要探讨可以直接发问题! 我一般问大佬问题:1、做简单自我介绍,让大佬认识我2、描述我遇到的问题/转载 2020-08-26 22:43:27 · 1326 阅读 · 1 评论 -
有关Java值传递还是引用传递问题
一:搞清楚 基本类型 和 引用类型的不同之处int num = 10;String str = "hello";如图所示,num是基本类型,值就直接保存在变量中。而str是引用类型,变量中保存的只是实际对象的地址。一般称这种变量为"引用",引用指向实际对象,实际对象中保存着内容。二:搞清楚赋值运算符(=)的作用num = 20;str = "java";对于基本类型 num ,赋值运算符会直接改变变量的值,原来的值被覆盖掉。对于引用类型 str,赋值运算符会改变引用中所保存的地址,,原创 2020-08-26 21:35:21 · 119 阅读 · 0 评论 -
Java中有关文件基本操作的总结
文件操作常用方法: //注:在使用中为了我们程序的可移植性和健壮性,建议使用 这个常量 System.out.println(File.separator); //打印结果 \ /** * 1:创建一个新的文件夹(包括创建多层目录文件夹) * boolean mkdir() 创建此抽象路径名指定的目录。 * boolean mkdirs() 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。原创 2020-08-26 20:36:02 · 165 阅读 · 0 评论 -
parameterType 用法
该参数只表示一个参数类型,但是如果有多个参数的话,就不要使用该参数了。一个参数的这种其实没有必要写parameterType,而且还有就是多个参数的时候也没有必要写parameterType,也就是说,其实该参数的存在是不是特别必要的。其中@Param和parameterType 二者存其一即可。看名字就能知道ParameterType是按照类型进行匹配,而@Param是按照名字进行匹配。作者:湖杨链接:https://www.jianshu.com/p/2ca482b1284e来源:简书著作权归作原创 2020-08-26 14:20:59 · 18907 阅读 · 2 评论 -
Java集合常见遍历方式
一.Map类型方式1:使用map.entrySet方法 for(Map.Entry<String,Object> entry : map.entrySet()){ System.out.println(entry.getKey()+":"+entry.getValue()); }方式2:使用iterator Iterator<Map.Entry<String, Object>> iterator = map.entry原创 2020-08-23 19:40:31 · 513 阅读 · 0 评论 -
空指针异常及常见类型的空值判断
空指针异常就是我们在对空对象进行的任何操作都会报空指针异常。空指针的解决办法:重点关注报错发生的所在行,同时为了避免空指针的发生,最好在做判断处理时将“null”或者空值放于设定的值之前。1.字符串StringUtils.isNotEmpty(?);2.对象空值判断if(Obj == null)3,集合空值判断CollectionUtils.isEmpty(?)4.数组空值判断if(suzu != null && suzu.length() > 0)...原创 2020-08-22 17:58:20 · 1754 阅读 · 0 评论 -
IDEA debug断点调试技巧与总结
Rerun . 这个就是结束debug模式,直接以run的方式重新跑某个程序。2. 直接跑完. 到下一个断点停下. 没有就直接跑完程序。停止项目或者程序。要是自己的main呢. 点一下就停下了. 要是Java web项目. 则点2下. 就把服务器给停了。查看所有的断点设置情况。具体详情. 下面有示意图. 再细细解释。直接取消所有断点. 让所有断点无效。要是你一不小心把这个下面的布局给弄乱了. 你点这个. 就把下面的布局给还原咯。7. 跳转到当前代码所执行的地方. 也就是说你在看代码的时候. ..原创 2020-08-22 17:38:36 · 397 阅读 · 0 评论 -
JAVA泛型通配符
一、通配符的上界List <Cat <并不是List <Anilmal <的子类型;“?”就是通配符,而“? extends Animal”则表示通配符“?”的上界为Animal, 换句话说就是,“? extends Animal”可以代表Animal或其子类, 可代表不了Animal的父类(如Object),因为通配符的上界是Animal。 public void act(List<? extends Animal> list){ // li原创 2020-08-18 23:31:56 · 129 阅读 · 0 评论 -
Java访问权限
1、私有权限(private) private不能修饰类(此处指外部类,不考虑内部类)。被private修饰的成员,只能在定义它们的类中使用,在其他类中不能调用。2、默认权限(default) 类,数据成员,构造方法,方法成员,都能够使用默认权限,即不写任何关键字。默认权限即包访问权限。3、受保护权限(protected) protected不能修饰类(此处指外部类,不考虑内部类)。被protected修饰的成员,能在定义它们的类中,同包的类中被调用。如果有不同包的类想调用它们,那么这个类必原创 2020-08-17 19:40:43 · 216 阅读 · 0 评论 -
JAVA箭头函数和自定义排序
jdk8+以上引入了箭头函数,即J8的lambda表达式。1.基本形式// 1. 不需要参数,返回值为 5 () -> 5 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的差值 (x, y) -> x – y // 4. 接收2个int型整数,返回他们的和 (int x, int y) -> x + y // 5. 接受一个 string 对象,并在控制台打印,不返回任何原创 2020-08-16 18:50:50 · 1114 阅读 · 0 评论 -
JAVA内部类的定义与使用(成员内部类,静态内部类,方法内部类,匿名内部类)
1. 创建内部类1.1 在外部类外部 创建非静态内部类语法: 外部类.内部类 内部类对象 = new 外部类().new 内部类();举例: Outer.Inner in = new Outer().new Inner();1.2 在外部类外部 创建静态内部类语法: 外部类.内部类 内部类对象 = new 外部类.内部类();举例: Outer.Inner in = new Outer.Inner();1.3 在外部类内部创建内部类语法在外部类内部创建内部类,就像普通对象一样直接创建:Inn原创 2020-08-16 16:58:26 · 1228 阅读 · 0 评论 -
MybatisPlus常用方法
1.in QueryWrapper<Employee> qw=new QueryWrapper<>(); qw.in(R column, Collection<?> coll); List<Employee> list = employeeService.list(qw);亲测:①List集合存在重复变量,in方法查询的时候只查询一次;②List集合中含有数据库不存在的值,不报错,该值不查。2.likequeryWrapper.like(Stri原创 2020-08-15 22:01:23 · 2643 阅读 · 0 评论 -
IDEA常用快捷键(未完)
1.Ctrl+ALT+V: 自动补齐等式左侧2.Ctrl+Alt+L:格式化代码3.Alt+Enter:根据提示导包4.Ctrl+Shift+/:使用/**/注释5.Ctrl+N:查找类文件6.Ctrl+Shift+N:查找文件F2:定位至下一个错误处Shift+F2:定位至前一个错误处...原创 2020-08-15 20:40:07 · 282 阅读 · 0 评论 -
SpringBoot 全局异常处理
返回的信息包含了异常下面 5 部分内容:唯一标示异常的 codeHTTP状态码错误路径发生错误的时间戳错误的具体信息全局异常处理类ErrorCode.java (此枚举类中包含了异常的唯一标识、HTTP状态码以及错误信息)public enum ErrorCode { RESOURCE_NOT_FOUND(1001, HttpStatus.NOT_FOUND, "未找到该资源"), REQUEST_VALIDATION_FAILED(1002, HttpStatus.B原创 2020-08-13 23:05:31 · 245 阅读 · 0 评论 -
关于Java路径与通配符问题
一//在test文件下一级目录,例如/test/a可以访问但/test/a/a就不允许访问了/test/*//所有子目录都可以访问/test/**二?:匹配一个字符 eg:/admin?可以匹配/admin1,但是不能匹配/admin或/admin/*:匹配0个或多个字符串 eg:/admin可以匹配/admin,/admin123,但是不能匹配/admin/1**:匹配0或多个路径 eg:/admin/**将匹配/admin/a或者/admin/a/b原创 2020-08-10 19:56:34 · 741 阅读 · 0 评论 -
SpringBoot配置静态资源 和 实现拦截器
WebMvcConfigurer配置类WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based(主要注解:@Bean和@Configuration)方式的spring mvc配置,需要创建一个配置类并实现WebMvcConfigurer 接口。/*在spring bo原创 2020-08-10 19:21:28 · 626 阅读 · 0 评论 -
JAVA日期处理相关问题
1.java.util.Date 和 java.sql.Timestamp类#####字符串转日期 1.String->date String string = "2010/05/04 12:34:23"; Date date = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse("2010/05/04 12:34:23"); 2.String ->Timestamp // String格式必须是:原创 2020-08-09 16:53:36 · 197 阅读 · 0 评论 -
Jackson JsonNode和ObjectNode的使用
1.介绍 JsonNode 和.ObjectNodeJsonNode类,完整路径为com.fasterxml.jackson.databind.JsonNode,是Jackson的json树模型(对象图模型)。JsonNode为抽象类,这意味着不能直接构建JsonNode实例的对象图,但你可以创建JsonNode 的子类ObjectNode实例的对象。2. 操作JsonNode(读)2.1. json和JsonNode相互转换String json = "{ \"f1\" : \"v1\" } "原创 2020-08-09 14:01:49 · 8261 阅读 · 0 评论 -
IDEA中maven项目dependencies报错飘红问题解决
若是从其他地方导入的新工程,右边 maven 管理工具中 dependencies 若出现红色波浪线。通常用以下方式尝试解决。第一步1.File --> settings 输入maven,检查Maven directory,local repository的配置和settings.xml中配置的仓库地址。2、打开项目 pom.xml 文件,右键 maven --> reimport ,等待maven重新加载依赖。3、同上面操作一样,可以同时对整个项目的所有pom.xml文件进行原创 2020-08-08 13:08:10 · 39607 阅读 · 2 评论