JAVA基础
丘山一郎
这个作者很懒,什么都没留下…
展开
-
BigDecimal类型相等比较
BigDecimal类型判断是否相等,equals判断精度;Compare比较值转载 2022-07-04 11:09:14 · 1969 阅读 · 0 评论 -
@JsonFormat与@DateTimeFormat注解的使用
背景:从数据库获取时间传到前端进行展示的时候,我们有时候可能无法得到一个满意的时间格式的时间日期,在数据库中显示的是正确的时间格式,获取出来却变成了很丑的时间戳,@JsonFormat注解很好的解决了这个问题,我们通过使用@JsonFormat可以很好的解决:后台到前台时间格式保持一致的问题,其次,另一个问题是,我们在使用WEB服务的时,可能会需要用到,传入时间给后台,比如注册新用户需要填入出生日期等,这个时候前台传递给后台的时间格式同样是不一致的,而我们的与之对应的便有了另一个注解,@DataTimeFo原创 2022-03-15 18:45:18 · 541 阅读 · 0 评论 -
toString与String的区别
举个例子先:定义一个经过Base64加密的字符串String str=“TU0jV0xBTiNVYys5bEdiUjZlNU45aHJ0bTdDQStBPT0jNjQ2NDY1Njk4IzM5OTkwMDAwMzAwMA==”现在解密:String rlt1=new String( Base64.decode(str, Base64.DEFAULT));String rlt2=Base64.decode(str, Base64.DEFAULT).toString();结果是:rlt1=“MM#原创 2022-03-12 19:41:50 · 612 阅读 · 0 评论 -
软件开发过程中常用的环境解释DEV FAT UAT PRO
1.DEVDevelopment environment开发环境,用于开发者调试使用2.FATFeature Acceptance Test environment功能验收测试环境,用于软件测试者测试使用3.UATUser Acceptance Test environment用户验收测试环境,用于生产环境下的软件测试者测试使用4.PROProduction environment生产环境...原创 2021-05-27 13:06:27 · 387 阅读 · 0 评论 -
八大排序方法——JAVA实现版本 (拿下来直接可以运行)
package sort;import java.lang.reflect.Array;public class mainsort { public static void main(String[] args) { // TODO Auto-generated method stub int[] intlist=new int[] {4,7,9,1,3,0}; int[] result=new int[100]; //1,冒泡排序 //BubbleSort(intlist)原创 2020-12-25 17:47:10 · 126 阅读 · 0 评论 -
JAVA序列化 Serializable 将对象转为数组,再反过来将数组转为对象
序列化过程中,其对象想要被序列化,那么它的类就要实现 此接口,这个对象的所有属性(包括private属性、包括其引用的对象)都可以被序列化和反序列化来保存、传递。比如:在本实例中,DivSort必须实现Serializable接口,不实现的话,会在序列化过程中报错,一般会在o.writeObject(obj)的这一步骤报错。import java.io.Serializable;public class DivSort implements Serializable{ public int age原创 2020-08-01 17:04:51 · 2255 阅读 · 0 评论 -
JAVA 排序比较器 Comparable 与Comparator
Java中排序主要通过两种方式实现(1)Collection的sort排序的集合元素都必须是Comparable接口的实现类,该接口表示子类是可以比较的。因为实现接口必须重写抽象方法 - int compareTo(T t)。(2)使用重载的Collections.sort(List,Comparator)方法,使用匿名内部类的方式, 实现compare(Object o1, Object o2)DivSort .class文件public class DivSort implements Co原创 2020-08-01 10:53:08 · 162 阅读 · 0 评论 -
java中的重量级与轻量级概念
首先轻量级与重量级是一个相对的概念,主要是对应用框架使用方便性和所提供服务特性等方面做比较的。比方说EJB就是一个重量级的框架,因为它对所编写的代码有限制,同时它也提供分布式等复杂的功能。相比之下,Spring就是轻量级框架,因为它需要的只是普通的Java对象,它所提供的也只是足够中小应用使用的功能。但是,随着Spring的发展,它也所具有的功能也越来越强大,而EJB的使用也在变得简单,所以这随着技术的发展,这个概率也需要更新。毕竟它的出现是为了和使用复杂的框架做区别,那么当各家都在不断吸收对方长处的原创 2020-07-22 10:02:13 · 835 阅读 · 0 评论 -
List是什么意思
List<Map>是什么意思?List集合中的对象是一个Map对象,而这个Map对象的键是String类型,值是Object类型List以Map接口对象为列表对象。Map以String为键,以Object为值。List里只能放Map类型的对象,而这个Map类型的对象又只能放以String类型为键,以Object类型为值的键值对。...原创 2019-07-08 10:37:20 · 6028 阅读 · 0 评论 -
面向切面编程AOP
本文旨在帮助还没有理解AOP的童鞋看透弄懂AOP,也欢迎高手批评指正。先说一个Spring是什么吧,大家都是它是一个框架,但框架这个词对新手有点抽象,以致于越解释越模糊,不过它确实是个框架的,但那是从功能的角度来定义的,从本质意义上来讲,Spring是一个库,一个Java库,所以我个人觉得应该这样回答Spring是什么:Spring是一个库,它的功能是提供了一个软件框架,这个框架目的是使软件之间...原创 2019-07-08 13:21:30 · 119 阅读 · 0 评论 -
Java文件上传细讲
什么是文件上传?文件上传就是把用户的信息保存起来。为什么需要文件上传?在用户注册的时候,可能需要用户提交照片。那么这张照片就应该要进行保存。上传组件(工具)为什么我们要使用上传工具?为啥我们需要上传组件呢?当我们要获取客户端的数据,我们一般是通过getParameter()方法来获取的。上传文件数据是经过MIME协议进行分割的,表单进行了二进制封装。也就是说:getParameter...原创 2019-07-08 09:42:49 · 144 阅读 · 0 评论 -
面向接口编程的优点
1 首先什么是面向接口编程?在这里插入代码片 面向接口编程就是先把客户的业务逻辑线提取出来,作为接口,业务具体实现通过该接口的实现类来完成。 当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件(例如Spring框架)中该接口 的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。2 面向接口编程的优点?1 降低程序的耦合性。其能够最大限度的解耦,所谓解耦既是...原创 2019-07-08 13:48:57 · 290 阅读 · 0 评论 -
面向(过程、对象、组件、服务)编程
软件发展中的几个概念:面向对象编程(Object-Oreinted Programming) 是一种编程范式。指在设计程序时大量运用类实例对象的方式。OOP一旦在项目中被运用,就成了时刻要考虑的东西。基于组件开发(Component-Based Development) 是一种软件工程实践,设计时通常要求组件之间高内聚,松耦合。其接口可能是OO的,调用方式可能是以Service的方式。基于组...原创 2019-07-08 14:00:33 · 304 阅读 · 0 评论 -
Java利用工厂方法模式实现层与层之间的解耦合
Java在web开发中,遵循分层开发思想:表现层(User Interface layer)直接和用户见面,大部分跟界面的开发有关(html,jsp,servlet)业务逻辑层(Business Logic Layer)业务逻辑由一个到多个基本的增删改查组成持久层(数据访问层)(Data access laye)将数据永久的保存,jdbc与mybatis部分我们希望在开发中层与层之间...原创 2019-07-08 13:08:09 · 360 阅读 · 0 评论 -
JAVA中动态代理与静态代理的区别
代理Proxy:Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效...原创 2019-07-02 17:55:00 · 1260 阅读 · 0 评论 -
EL(Express Lanuage)表达式 与 JSTL(JSP Standard Tag Library),JSP标准标签库
一、EL技术1.EL 表达式概述EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写。2.EL从域中取出数据(EL最重要的作用)jsp脚本:<%=request.getAttribute(name)%>EL表达式替代上面的脚本:${requestScope.name}EL最主要的作用是获得...原创 2019-06-27 09:14:55 · 175 阅读 · 0 评论 -
MVC设计模式与JavaWEB三层架构
一、MVC设计模式MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。控制器(Controller):Servlet,控制器主要处理用户的请求l 视图(View):HTML, JSP, 前端框架l 模型(Model):逻辑业务程序(后台的功能程序), Ser...原创 2019-06-17 11:51:04 · 435 阅读 · 0 评论 -
用图表示 内连接 左外连接右外连接的区别
原创 2019-06-04 18:05:02 · 347 阅读 · 0 评论 -
request.setAttribute的用法
request.getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型 。request.getParameter表示接收参数,参数为页面提交的参数,包括:表单提交的参数、URL重写(就是xxx?id=1中的id)传的参数等,因此这个并没有设置参数的方法(没有setPar...原创 2019-06-13 20:16:01 · 6301 阅读 · 0 评论 -
Session与Cookie的区别与联系
一、Session的概念Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的...原创 2019-06-14 19:23:42 · 98 阅读 · 0 评论 -
动态页面技术(JSP/EL/JSTL)
1.jsp脚本和注释jsp脚本:1)<%java代码%> ----- 内部的java代码翻译到service方法的内部2)<%=java变量或表达式> ----- 会被翻译成service方法内部out.print()3)<%!java代码%> ---- 会被翻译成servlet的成员的内容jsp注释: 不同的注释可见范围是不同1)Html注释: ...原创 2019-06-15 14:44:11 · 192 阅读 · 0 评论 -
JSP中静态包含与动态包含的关系
一、静态包含指令<%@include file=“fileurl”%>1、两个jsp页面的<%@page contentType=“text/html;charset=gbk”%>应该保持一致2、不能通过fileurl向被包含的jsp页面传递参数,因为此静态包含是发生在jsp页面转换为servlet的转换期间,此时的参数是服务器端设置的死的参数,完全没有经过客户端,这种...原创 2019-06-15 15:00:27 · 333 阅读 · 0 评论 -
说说delete与truncate的区别?
delete删除的时候就是一条一条的删除记录,它可以配合事务,将删除掉的数据找回。 roolbacktruncate删除,它是将整个表摧毁,然后再创建一张一模一样的表,它删除的数据无法找回。delete删除uid不会重置;再使用truncate操作,uid会重置。因为它删除了表结构,然后再创建一张一模一样的表,所以再次插入数据的时候,会从1开始。...原创 2019-06-04 10:35:52 · 3006 阅读 · 0 评论 -
JAVA中jdbc连接数据库 sql注入与PrepareStatement预处理
连接数据的步骤如下:1.注册驱动2.获取连接3.创建执行sql语句的对象4.书写一个SQL语句5.执行SQL语句6.对结果集进行处理一下的这种情况,可能存在SQL注入的情况public void login(String username, String password) throws ClassNotFoundException, SQLException { // 1.注...原创 2019-06-04 13:39:11 · 517 阅读 · 0 评论 -
SQL语句Limit的作用——分页
11,能够使用Limit关键字进行查询操作a, 说出limit关键字两个参数的含义(limit 2 ,2 )b, 写出limit关键字查询数据QL语句每页显示3条记录,要查询第三页。...原创 2019-06-04 14:14:58 · 1561 阅读 · 0 评论 -
DriverManager.registerDriver(new Driver());与Class.forName(“com.mysql.jdbc.Driver”);的区别
org.postgresql.Driver类源码如下,可以看出postgresql是通过单例形式,new一个驱动Driver,也就是说在连接数据库是只new了一个Driverstatic { sharedTimer = new SharedTimer(logger); try { //注册 register();...原创 2019-06-04 15:10:40 · 2180 阅读 · 0 评论 -
一起看懂Redis两种持久化方式的原理
Redis为持久化提供了两种方式:RDB:在指定的时间间隔能对你的数据进行快照存储。AOF:记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。本文将通过下面内容的介绍,希望能够让大家更全面、清晰的认识这两种持久化方式,同时理解这种保存数据的思路,应用于自己的系统设计中。持久化的配置RDB与AOF持久化的工作原理如何从持久化中恢复数据关于性能与实践建议持...原创 2019-07-02 18:37:05 · 260 阅读 · 0 评论 -
JAVA中事务
一、事务概述1.什么是事务一件事情有n个组成单元 要不这n个组成单元同时成功 要不n个单元就同时失败就是将n个组成单元放到一个事务中2.mysql的事务默认的事务:一条sql语句就是一个事务 默认就开启事务并提交事务手动事务:1)显示的开启一个事务:start transaction2)事务提交:commit代表从开启事务到事务提交 中间的所有的sql都认为有效 真正的更新数据库...原创 2019-06-27 09:43:15 · 443 阅读 · 0 评论 -
Java中的编码问题 UNICODE GBK ASCII等
根据查阅的相关文献,编码问题可以分为三类:(1)ISO-8859-1 ASCII 数字和西欧字母(2)GBK GB2312 BIG5 中文(3)UNICODE (统一码,万国码)其中ISO-8859-1 包含 ASCIIGB2312 是简体中文,BIG5是繁体中文,GBK同时包含简体和繁体以及日文。UNICODE 包括了所有的文字,无论中文,英文,藏文,法文,世界所有的文字都包含其中...原创 2019-09-15 14:43:21 · 258 阅读 · 0 评论 -
数据库知识:第一范式,第二范式,第三范式,BC范式,第四范式 (广联达面试问到)
第一范式:表中的每一列都不可分,符合数据表的原子性,并且表中元素整体不重复。第二范式:2NF在1NF的基础之上,消除了非主属性对于码的部分函数依赖第三范式:第三范式(3NF)3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。...原创 2019-09-09 16:51:53 · 749 阅读 · 0 评论 -
Java面试操作系统高频知识点——秋招春招均可用
1、进程和线程的区别?解析:(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元(2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进行至少包括一个线程。(3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束(4)...原创 2019-09-06 21:11:36 · 220 阅读 · 0 评论 -
关于 Java 的静态工厂方法,看这一篇就够了!
1. 序:什么是静态工厂方法在 Java 中,获得一个类实例最简单的方法就是使用 new 关键字,通过构造函数来实现对象的创建。就像这样: Fragment fragment = new MyFragment(); // or Date date = new Date();不过在实际的开发中,我们经常还会见到另外一种获取类实例的方法: Fragment fragm...原创 2019-09-05 09:43:30 · 350 阅读 · 0 评论 -
控制反转IOC和依赖注入DI 详细版
IoC——Inversion of Control 控制反转DI——Dependency Injection 依赖注入 要想理解上面两个概念,就必须搞清楚如下的问题:参与者都有谁?依赖:谁依赖于谁?为什么需要依赖?注入:谁注入于谁?到底注入什么?控制反转:谁控制谁?控制什么?为何叫反转(有反转就应该有正转了)?依赖注入和控制反转是同一概念吗?下面就来简要的回答一下上述...原创 2019-08-26 15:58:31 · 154 阅读 · 0 评论 -
JAVA与C#比较 (如果你简历中提到C#和JAVA,面试如何回答?)
一、C#和java哪个更好?那么,下面就分析一下 C#和java到底有什么异同。 C#和Java比较,号称90%的相同加上10%的不同。总的来说是比较相似的?都是面向对象的语言二、从功能比较比较起JAVA和C3那大相径庭的那10%,会发现C#五花八门的特性要多很多。比较知名的有:委托,属性,真正的泛型,索引器,类初始化器,分部类,操作符重载,struct,unsafe代码,IDisspos...原创 2019-08-22 11:16:33 · 582 阅读 · 0 评论 -
JDK,JRE,JVM三者之间的关系
从图上我们可以得到结论,JDK包含JRE,JRE包含JVM。JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。JRE(Java Runtime Environment...原创 2019-08-15 21:03:51 · 549 阅读 · 0 评论 -
关于Java中length、length()、size()的区别(网上笔试中很容易混淆 )
首先区分一下length和length();length不是方法,是属性,数组的属性;public static void main(String[] args) { int[] intArray = {1,2,3}; System.out.println("这个数组的长度为:" + intArray.length);}length()是字符串String的一个方法;public...原创 2019-08-18 16:46:49 · 164 阅读 · 0 评论 -
2019秋招 字符流与字节流的区别
字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。字节流默认不使用缓冲区;字符流使用缓冲区。字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。字符流:就是在字节流的基础上,加上编码,形成的数据流字符流出现的意义:因为字节流在操作字符时,可能会有中文导致的乱...原创 2019-08-02 10:10:39 · 99 阅读 · 0 评论 -
java中I/O流之字节流和字符流学习总结
一、基本内容如果要进行文件内容的操作那么必须依靠数据流完成,而数据流分为两种:字节流:InputStream(字节输入流)、OutputStream(字节输出流);字符流:Reader(字符输入流)、Writer(字符输出流);字节流理解配图字符流理解配图字节流与字符流操作的本质区别只有一个:字节流是原生的操作,而字符流是经过处理后的操作。在进行网络数据传输、磁盘数据保存所保存...原创 2019-08-02 09:31:36 · 200 阅读 · 0 评论 -
Java中从控制台输入数据的几种常用方法
一、使用标准输入串System.in//System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字//System.in.read()返回一个整数//必须初始化//int read = 0;char read = ‘0’;System.out.println(“输入数据:”);try {//read = System.in.read();read...原创 2019-08-01 16:52:19 · 1143 阅读 · 0 评论 -
Java程序员 面试如何介绍项目经验? Java程序员应该如何介绍自己的项目经验和自我介绍?面试如何突出自己
Java程序员项目经验介绍:背景:姓名:张三;年龄:25;籍贯:安徽; 毕业学校:南京审计学院;工作经验:2年;求职城市:北京面试官你好,我叫张三,今年25岁,来自安徽,毕业于南京审计学院计算机专业,毕业以后在江苏南京工作了2年,在2年我分别在两家公司做了三个项目,第一家工作实习半年,做了一个家居信息管理的项目,第二家公司昕怡服装有限公司(最好说出公司的具体名字)工作一年半左右的时间做了两个项目,...原创 2019-08-01 11:22:40 · 10643 阅读 · 0 评论