java基础知识点
mingxu.chen
这个作者很懒,什么都没留下…
展开
-
多态问题:编译看左边,运行看右边 是什么意思?(转发)
多态:Percent p = new Children();对于成员方法:编译看左边,运行看右边。对于成员变量:编译运行都看左边。也就是成员变量没有多态特性。静态方法和变量:编译运行都看左边,同成员变量一样。子类的同名的 类变量、静态方法、静态变量 不会覆盖父类。 调用p的这些属性找的是父类的属性子类同名的类方法覆盖父类。 调用p的方法找的是子类的方法。调用p的属性(变量或方法)会检查父类Percent是否存在此属性,如果不存在(只有子类有)或者父类属性用private修饰则编译不通过。.转载 2021-08-05 09:33:09 · 2889 阅读 · 0 评论 -
判断集合中多个日期是否有重合的代码(亲测)
一、背景1.因为项目中需要,需要写一个工具类来判断多个集合业务参数是否有重复的日期,经过反复的测试,觉着这个方法不错,希望能帮助大家。二.思路2.1.先对集合进行排序(因为是String类型,在这写了一个比较器,按照升序进行排序);2.2.双重for循环,判断每一个;三.代码1.CompareDemo.javapublic class CompareDemo { ...原创 2020-04-15 23:02:38 · 1033 阅读 · 1 评论 -
java之数据金额的钱数转化为大写的工具类
1.背景1.1.因为项目的需要,需要把阿拉伯金额的钱数转化为大写的工具类,下面直接上代码。2.Utilimport java.util.regex.Matcher;import java.util.regex.Pattern; public class ChineseYuanUtil { private static final Pattern AMOUNT_PAT...原创 2020-04-03 21:54:08 · 1066 阅读 · 0 评论 -
java过滤器的两种加载方式
一、第一种1.代码@WebFilter(filterName="LoginCheckFilter",urlPatterns="*")public class LoginCheckFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletExceptio...原创 2020-01-18 18:22:41 · 622 阅读 · 0 评论 -
二、java基础之nio编程(直接缓冲区与非直接缓冲)
一、背景1.承接上一篇博客,咱们今天继续来研究下nio编程,废话不多说,来开始今天的总结。具体可以参考下上篇文章:https://blog.csdn.net/chenmingxu438521/article/details/103967066二、直接缓冲区与非直接缓冲的区别1.非直接缓冲区:通过 allocate() 方法分配缓冲区,将缓冲区建立在 JVM 的内存中2.直接缓...原创 2020-01-14 13:42:44 · 275 阅读 · 0 评论 -
一、java基础之nio编程
一、什么是nio1.NIO是一个可以替代标准Java IO API的IO API(从Java 1.4开始),NIO提供了与标准IO不同的IO工作方式,NIO: Channels and Buffers(通道和缓冲区)二、nio与io的对比 IO NIO 面向流 面向缓冲区 阻塞IO ...原创 2020-01-14 09:50:53 · 248 阅读 · 0 评论 -
Mybatis中的动态代理之Jdk动态代理
一、背景1.在jdk1.3之后引入了一种称之为动态代理(Dynamic Proxy)的机制,使用该机制,我们可以为指定的接口在系统运行期间动态地生成代理对象,从而帮助我们走出最初使用静态代理实现AOP的窘境。二、基础讲解1.举个栗子2.分析目标类:target,就是我们需要增强的那个类。代理类:proxy,就是我们自定义的那个代理的对象。连接点:joinpoint,连接...原创 2019-10-18 15:10:09 · 926 阅读 · 0 评论 -
java浅聊之何时类加载的情况
一、背景1.这节主要讲解什么情况下会触发类加载的进行呢,本文将结合代码demo谈谈几种情况,希望能帮助到正在努力学习的你们。二、类加载时机1.什么情况需要开始类加载过程的第一阶段:加载?Java虚拟机规范中并没有进行强制约束,这点可以交给虚拟机的具体实现来自由把握。但是对于初始化阶段,虚拟机规范则严格规定了以下几种情况必须立即对类进行初始化,如果类没有进行过初始化,则需要先触发其初始化...原创 2019-10-15 09:54:14 · 352 阅读 · 0 评论 -
java中的try catch finally块中return的执行顺序(基础)
一、背景1.当我们的程序出现异常的时候,我们可以选择捕获异常,我们可以选择try catch来处理我们出现异常的代码逻辑,这时候还有一个知识点就是finally何时执行,接下来我们用简单的例子来说明下吧!二、没有发生异常的时候1.代码public static void main(String[] args) { int i = method1(); ...原创 2019-10-13 19:09:39 · 486 阅读 · 0 评论 -
深入理解Http协议
一、什么是http协议1.http协议: 对浏览器客户端 和服务器端之间数据传输的格式规范。2.http协议的概述与同步异步的区别(底层还是走的socket通信协议)二、http协议核心1.分析列表2.查看http协议的工具2.1.使用火狐的firebug插件(右键->firebug->网络)。2.2.使用谷歌的“审查元素”。3.分析http的请...原创 2019-05-29 21:39:23 · 421 阅读 · 0 评论 -
二、关于MD5加密的理解
一、简介1.MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。2.MD5加盐实现方式,md5(Password+UserName),即将用户名和密码字符串相加再MD5,这样的MD5摘要基本上不可反查。二、项目结构1.结构图三、代码1.pom.xml<dependenc...原创 2019-06-13 13:20:00 · 444 阅读 · 0 评论 -
一、关于图片上传的后端的写法
一、背景1.在这里主要讲的是后端的,公司要用到图片上传,特意码了一段代码,在这里讲下我使用的方法思路,首先接收到前端的二进制流,然后把二进制流转化为字节数组,然后调用三方的jar包完成图片的上传。二、用法1.可以多文件上传,在这里我的测试用例用的是单文件上传,也支持多文件上传。2.代码/** * Created by ChenMingXu on 2019/6/25. * ...原创 2019-06-26 22:55:31 · 3347 阅读 · 0 评论 -
mybatis的常用标签用法总结
一、背景在我们的学习过程中,我们经常使用到mybatis,这里主要讲讲常用的标签,这样你也可以在面试官面前有底气了,那下面我们就来讲讲这些常用的标签,再说了标签不熟悉非常影响开发效率和质量。好了废话不多说了。二、selectKey1.应用场景:新增数据时2.插入数据并且返回当前数据的id<insert id="selectUser"> <!-- se...原创 2019-06-26 23:14:18 · 5874 阅读 · 0 评论 -
java基础理解
一、java中的方法1.格式 public 返回值的数据类型 方法名(数据类型 形参1, 数据类型 形参2) { return 返回值; } 注意事项: 1. 定义方法的时候, 可以参考如下思路: 先分析返回值的数据类型: 大白话: 调用方法后, 返回一个什么结果. 在...原创 2019-06-24 23:16:11 · 230 阅读 · 0 评论 -
关于java中的equals的详解
一、背景1.今天我们来说说Object和String中的equals()方法,首先我先阐述下他们之间的关系,Object是基类,所有的类都默认继承它,当然String类也继承自它,所以可以这么说String中的equals()就是继承Object类中的equals()方法,String类中的equals()方法就是对Object类的扩展(子继承父,并重写扩展父类的equals()方法)。2...原创 2019-08-22 21:23:28 · 730 阅读 · 0 评论 -
一、NIO编程的理解
一、NIO与IO的区别1.NIO是在IO的基础上进行改进,NIO是一个可以替代标准IO API的API(从Java 1.4开始),NIO提供了与标准IO不同的IO工作方式。2.NIO是一个非阻塞的IO(通道+缓冲区),面向缓冲区的,而IO是阻塞的,面向流。二、代码测试1.BufferTest.java/** * 缓冲区是NIO 提高给传输文件和通道一起配合使用,存储数据.&...原创 2019-09-02 08:56:48 · 347 阅读 · 0 评论 -
一、关于java中的IO的基础知识点之字节流读取文件
一、背景1.IO流有很多种,按照操作数据的不同,可以分为字节流和字符流,按照数据传输的方向不同又可以分为输入流和输出流,程序从输入流中读取数据,向输出流中写入数据,因为都是在IO包下面,所以就叫IO流。2.在IO包中,字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示,字符流的输入输出流分别用java.io.Reader和java....原创 2019-10-09 14:24:25 · 339 阅读 · 0 评论 -
二、关于java中的IO的基础知识点之文件的拷贝
一、背景1.在应用程序中,IO流通常是成对出现的,即输入流和输出流一起使用,例如文件的拷贝就需要通过输入流来读取文件中的数据,通过输出流将数据写入文件。二、代码示例1.代码演示public static void main(String[] args) throws Exception { //创建一个字节输入流,用于读取当前目录下source文件夹中的MP3文件...原创 2019-10-09 15:54:23 · 297 阅读 · 0 评论 -
三、关于java中的IO的基础知识点之字符编码
一、背景1.我们常用的字符集,其实就是来选择合适的码表就能完成字符和二进制数据之间的转换,从而实现数据的传输。2.常见的字符码表有,ASCII、ISO8859-1、GB2312、GBK、GB18030、Unicode、UTF-8等。3.在java编程中,经常会出现字符转换为字节或者字节转换为字符的操作,一般来说把字符串转化为计算机识别的字节序列称为编码,而把字节序列转化为普通人能看懂的...原创 2019-10-09 20:28:28 · 221 阅读 · 0 评论 -
maven jar包冲突如何解决
一、背景1.假设我们现在有一个多模块的项目,依赖关系如图,我们在st-web模块中引入st-dal依赖时,st-common-lib这个依赖也会被我们引入,这个就是依赖传递,下表列出了scope在依赖过程中发生的变化,列标题为被依赖的模块,每行为要依赖的模块。图12.上面的就是关于依赖传递的。二、依赖仲裁1.(依赖仲裁)依赖冲突:就是我们当项目中引入的jar包,group...原创 2019-10-10 14:10:08 · 2347 阅读 · 0 评论 -
java中的各种集合排序
一、背景1.软件开发过程中集合排序是比较强大的功能,会使用集合Map、Set、List实现排序功能,知道匿名内部类Comparator很关键,搞清楚集合排序的性能开销,排序遇到的坑以及解决的方法,注意下面的例子都是JDK1.8的用法。二、LIst集合排序1.UML类图2.重点分析下ArrayList的排序,毕竟实战开发用的最频繁的就是它了三、第一种做法介绍:这种叫定制排...原创 2019-05-03 01:44:35 · 14045 阅读 · 0 评论 -
http中解决跨域的几种方法(代码实测)
一、概念1.什么是跨域,跨域是浏览器安全机制,其实就是说你请求访问的域名与ajax请求地址不一致,浏览器会直接无法返回请求结果。二、跨域的例子展示1.项目demotesta1.1.目录结构1.2.pom.xml<dependency> <groupId>javax.servlet</groupId> <artifa...原创 2019-06-01 13:05:22 · 6819 阅读 · 0 评论 -
一、关于接口安全加密传输对称加密与非对称加密的理解
一、什么是URL转码1.不管是以何种方式传递url时,如果要传递的url中包含特殊字符,如想要传递一个+,但是这个+会被url会被编码成空格,想要传递&,被url处理成分隔符。 尤其是当传递的url是经过Base64加密或者RSA加密后的,存在特殊字符时,这里的特殊字符一旦被url处理,就不是原先你加密的结果了。2.url特殊符号及对应的编码: 符号 ...原创 2019-06-12 23:57:50 · 1689 阅读 · 0 评论 -
Spring事物与传播性
一、什么是事物1.说白了就是保证数据的一致性。2.事务的特性:2.1.原子性:要么全部成功,要么全部失败,不可再分。2.2.一致性:例如,A用户5000元,B用户0元,转账之后B用户5000元,A用户0元,A+B总和不变为5000元。2.3.隔离性:多个事务之间互不影响。2.4.持久性二、事务的分类1.编程式事务:手动事务就是自己begin,commit。2.声...原创 2019-06-05 23:30:38 · 177 阅读 · 0 评论 -
java中的枚举的使用
一、简介1.java枚举是1.5才有的特性,关键字enum.2.它是个特殊类,拥有编译安全、完全单例、线程安全.3.它也可以像其他类,可以实现接口、定义抽象方法,但是不能继承其他类.二、下面先贴出一个简单的实例1.定义一个枚举类public enum Status { SCUUESS("1","成功"), FAILED("2","失败"); privat...原创 2019-05-01 13:50:20 · 377 阅读 · 0 评论 -
List去重3种方式
一、背景1.在实战中list去重是非常频繁的,下面就讲讲它的三种用法。二、第一种(原始代码去重)1.测试类public class DemoTest { public static void main(String[] args) { ArrayList<String> list = Lists.newArrayList("02","01","...原创 2019-05-03 22:45:44 · 2617 阅读 · 0 评论 -
java中的各种集合排序之TreeMap中集合排序
一、背景1.软件开发过程中集合排序是比较强大的功能,会使用集合Map、Set、List实现排序功能,知道匿名内部类Comparator很关键,搞清楚集合排序的性能开销,排序遇到的坑以及解决的方法,注意下面的例子都是JDK1.8的用法。二、UML的类图三、第一种方法1.实体类public class Person { private String id; p...原创 2019-05-03 22:04:53 · 1224 阅读 · 0 评论 -
关于java中的jdbc、数据库驱动、数据库连接池的学习与理解
一、什么是jdbc1.JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。2.jdbc的java api有哪些,四个常用的接口和一个类(Conn...原创 2019-04-19 11:40:03 · 3024 阅读 · 1 评论 -
java中的各种集合排序之set中TreeSet集合排序
一、背景1.软件开发过程中集合排序是比较强大的功能,会使用集合Map、Set、List实现排序功能,知道匿名内部类Comparator很关键,搞清楚集合排序的性能开销,排序遇到的坑以及解决的方法,注意下面的例子都是JDK1.8的用法。二、Set集合排序1.UML类图三、注意点1.我们先来说下集合的各个特点:2.List的主要特点以及用法2.1.可以允许存储重复的对象...原创 2019-05-03 15:06:01 · 10850 阅读 · 1 评论 -
java中的集合之Map集合
一、背景1.Map集合在实际的开发中用的是非常的广泛的,下面我们先讲下Map集合早实际的开发中怎么去使用以及要注意的一些知识点。本篇文章不研究底层了,掌握集合的使用就行了如果有兴趣的小伙伴可以自行去研究底层源码,很复杂。二、UML类图从上面的关系我们就可以看出HashMap的继承以及实现关系。三、Map常见操作1.学会Map的常见操作。2.理解为什么为什么Map遍历中不...原创 2019-05-01 19:06:00 · 389 阅读 · 0 评论 -
mybatis中xml怎么写(表与表之间的关系分析)
一、背景1.在实际开发中,经常会向数据库中创建多个表,问且多个表示有关系的,首先我们先讲讲我们的表设计与分析,然后我们再讲讲在mybatis中xml怎么去使用这个东西。下面我们先讲讲多表的分析与设计。二、多表的分析与设计1.一对多的关系例如:一个部门可以有多个员工,一个员工只能属于某一个部门。 一个分类下有多个商品,一个商品只能属于某个分类。 ...原创 2019-04-27 14:50:18 · 1414 阅读 · 0 评论 -
java中的反射知识点
一、背景1.首先我们得知道反射是什么东西、它的使用原理是什么、它有什么实际的用处、解决完这一系列的为什么我觉着大家应该就差不多明白了这到底是个什么玩意儿。下面我就来详细的讲讲反射这个东西,希望能帮助你们加深对它的理解。二、反射是什么1.JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息...原创 2019-04-26 15:03:27 · 297 阅读 · 0 评论 -
SVN的简单使用步骤
一、背景1.因为公司要使用svn,之前用的是git,所以自己研究了下这个东西到底怎么使用,本博客就是记录下这个东西的简单使用。二、安装与下载1.官网下载地址:https://tortoisesvn.net/downloads.html,选择你对应的版本下载就行了。我测试使用的是64-bit 的操作系统,则应该使用TortoiseSVN-1.4.x.xxxx-x64-svn-1.4.x....原创 2019-04-13 22:54:23 · 871 阅读 · 0 评论 -
java中常用的基础知识点总结
一、关于equals比较问题1.错误的写法变量.equals(常量)。这就是低级生产问题了,千万不要这么写,不然你都不知道你是怎么挂的。如果变量是null,那就报空指针异常了。就问你慌不慌2.正确的写法我们使用apache的org.apache.commons.lang中的StringUtils工具类来比较这样就算是变量为空也不会出现空指针异常。二、关于集合遍历...原创 2019-04-21 11:40:48 · 514 阅读 · 0 评论 -
关于java中自定义异常怎么定义
一、背景1.项目中的异常肯定是必须的,定义好结构良好的异常类,可以快速的定位生产bug的位置。二、异常码枚举1.先定义一个异常码枚举处理public enum ErrorCodeEnum { SYS_ERROR("SYS_ERROR","系统错误,请重试"), UNKNOWN_ERROR("UNKNOWN_ERROR","未知的系统异常"), SERVI...原创 2019-05-09 13:08:21 · 1031 阅读 · 0 评论 -
java的VO、DTO之间的转换,各种工具类
一、背景1.领域模型中的实体类分为四种类型:VO、DTO、DO、PO二、详细讲解1.VO(View Object),视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。2.DTO(Data Transfer Object),数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高...原创 2019-05-11 00:35:04 · 41921 阅读 · 4 评论 -
http中的反盗链技术的例子实现
一、背景1.接着上一篇的内容继续研究了下http请求的反盗链技术,请参考我的上一篇博文:https://blog.csdn.net/chenmingxu438521/article/details/90641052,在这里我讲解了http协议的基础知识,希望能帮助到你们。2.起初我用的是idea演示的项目,死活出不来结果,最终我选择了esclipse来研究反盗链,最终把结果演示了出来,困扰...原创 2019-05-31 13:35:37 · 462 阅读 · 0 评论 -
java的cookie与session底层实现原理分析
一、cookie理解1.特点Cookie技术:会话数据保存在浏览器客户端。2.Cookie技术核心,Cookie类:用于存储会话数据2.1.构造Cookie对象new Cookie(java.lang.String name, java.lang.String value)2.2.设置cookievoid setPath(java.lang.String uri) ...原创 2019-05-28 14:45:01 · 1594 阅读 · 0 评论 -
java基础之servlet的讲解以及源码分析
一、创建项目1.用idea创建maven项目的web项目,在这里我就不详细讲解了,网上教程一堆。2.项目整体结构:3.pom.xml<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId&...原创 2019-05-28 12:18:55 · 297 阅读 · 0 评论 -
java中关于hashcode的理解和学习
一、背景1.一般的话面试官都很喜欢问hashcode与equals的区别是什么,这里先告诉你他们没有联系的。但是为什么会把他们混为一谈呢,下面我就按照我自己的理解告诉你们。二、总结1.我大概总结下,像Hash开头的类,HashMap、HashSet、Hash等等,哈希代码值可以提高性能,实现了hashCode一定要实现equals,因为底层HashMap就是通过这2个方法判断重复对象的...原创 2019-05-12 21:20:55 · 472 阅读 · 0 评论