自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 货值网——springboot商城项目

1.项目需求2.项目表结构设计3.项目技术选型4.框架搭建5.功能模块

2020-08-11 20:36:48 236

原创 MySQL报错:The server time zone value ‘�й���׼ʱ��‘ is unrecogni

MySQL6.0以上的版本,如果在配置URL时没有配置时区,会报上述错误。所以只要配置好时区,就不会报错了。

2020-08-06 12:05:23 376

原创 springboot和springmvc的区别

1.Spring MVC是Spring的一个模块,也是一个web框架。通过前端控制器DispatcherServlet可以分发处理请求,最后展现给用户View;2.SpringBoot通过将其所需的配置封装成了一个个的starter,实现了自动配置,降低了项目搭建的复杂度。...

2020-07-09 12:58:08 238

原创 springmvc的工作原理

用户发送请求给中央处理器,中央处理器请求处理器映射器获取handle,映射器根据配置或者注解找到最终要执行的handle后返回给中央处理器,然后中央处理器调用处理器适配器处理handle,执行后返回modleandView对象,然后中央处理器调用视图解析器,返回view对象,然后利用model将对象中的参数进行解析,最终渲染view,将完整的视图呈现到浏览器上。下面是完整的图。1.浏览器请求到前端控制器(dispatcherServlet)2.前端控制器调用handle mapping将请求U...

2020-07-09 12:24:27 173

原创 mybatis的#和$的区别

1.使用${}将参数拼接后在编译成SQL语句,不能防止SQL注入,查询出了有关额外信息,这是很危险的。2.Mybatis中的#{}用于传递查询的参数,用于从dao层传递一个string参数过来(也可以是其他参数),select * from 表名 order by age=#{age}。Mybatis会把这个参数转换成一个字符串。select * from 表名 order by age=“age” 相当于jdbc中的预编译,安全。3.而${}一般用于order by的后面,Mybatis不会对这个参数

2020-07-09 12:07:55 303

原创 反射是什么?反射的常用方法

反射概念反射指的是程序可以访问、检测和修改它本身状态或行为的一种能力。反射可以将类的各个组成部分分装为其他对象。理解框架框架是半成品的软件,可以在框架的基础上进行软件开发,简化编码,而反射是框架的灵魂。Java在计算机中经历的阶段:三个阶段source源代码阶段class类对象阶段运行时阶段class类:class类对象由成员变量(Field)、成员方法(Method)和构造方法(Constructor)等部分构成获取class类对象方式class.forName(

2020-06-28 16:40:38 693

原创 Java中的clone方法

1.理解按值传递和按引用传递。Java在处理基本数据类型时,都是采用按值传递,传递的是输入参数的副本,除此之外其他类型都是按引用传递的方式执行,对象除了在函数调用时是引用传递,在使用等于号赋值时也是采用引用传递。2.clone方法定义:所有类默认继承Object类,而object类提供了一个clone方法,该方法返回的是object对象的副本,这个复制函数返回的是一个新的对象而不是一个应用。方法步骤:1.继承cloneable接口2.重写clone方法3.在clone方法中调用super.

2020-06-27 22:58:26 447

原创 jdk1.8中接口的默认方法

1.接口的定义接口是抽象方法定义的集合,是一种特殊的抽象类。2.接口的特点一个类实现多个接口,因此可以采用实现多个接口的方式实现多重继承的目的。接口中成员的修饰符都是public或者default,不能使用private和protected修饰。接口可以默认方法与静态方法,有方法体的实现。但abstract修饰的抽象方法没有方法体。3.标识接口Java语言中,有些接口内部没有声明任何方法,也就是实现这些接口不需要重写任何方法,这些没有任何方法声明的接口叫做标识接口。比如clonable和Se

2020-06-27 21:32:48 668

原创 理解maven中的正式版本和快照版本

在pom文件中我们可以看到以下的代码:```<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <!--这个是springboot的版本--> **&l...

2020-03-24 15:13:39 1095

原创 JDBC连接MySQL数据库的操作流程

JDBC连接MySQL数据库的流程第一步:引入依赖在springboot中不用导入jar包,在pom中引入依赖即可自动配置,如下图所示,引入了jdbc依赖和数据库驱动的依赖。补充IDEA导入jar包的方式:1.鼠标点击file,选择Project Structure2.点击Modules,然后打开Dependencies3.在右边有个绿色的小加号,选择JARs or directo...

2020-03-23 17:53:06 325

转载 springboot整合jdbc

原文链接:https://blog.youkuaiyun.com/qq_29119581/article/details/86631076一、JdbcTemplate是什么它是Spring框架自带的对JDBC操作的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中,目的是提供统一的模板方法使对数据库的操作更加方便、友好。SpringBoot2.x中在原来spri...

2020-03-23 14:54:52 240

原创 Error:java: Compilation failed: internal java compiler error 解决办法

在运行一段代码的时候,使用了hashmap的泛型,当时编译报错,错误的原因是hashmap的泛型中使用了jdk1.7以上的特性,即diamond 运算符,但Maven 默认使用jdk1.5 编译,所以为了解决这个问题,将jdk版本换成了1.8。再去编译的时候出现了错误,错误如下:结合之前修改了maven的编译器版本,可推测错误的原因是idea软件环境中Java版本的配置和之前项目的配置不一样,...

2020-01-29 13:21:05 1209

原创 Java面试题30——面向对象特征之多态

面向对象特征——多态多态有两种描述方式,一种是方法的多态性、一种是对象的多态性。多态是发生在编译期间的。一、方法的多态性:① 方法的重载:同一个方法名称,会根据传入参数的类型及个数不同执行不同的方法体;② 方法的覆写: 同一个方法,会根据子类的不同,实现不同的功能。也就是继承了父类的多个子类对父类方法的重写,导致了方法的多态性。二、对象的多态性(指的是发生在继承关系之中,子类和父类之间转...

2020-01-09 20:11:13 244

原创 Java面试题26——运算符优先级

运算符优先级1.Java中的运算符优先级:口诀:单目乘除为关系,逻辑三目后赋值。(大佬总结的)口诀解释:单目:指的是例如正负(±)这些一次只作用于一个变量的运算符,又叫一元运算符。乘除:乘、除、模 ,毫无疑问优先级比加减高一级为:即谐音“位”,指的是位运算中用到的符号:~(按位取反)<<(左移) >>(右移),^(也可以位运算,二进制异或)。关系:大于、大于等...

2020-01-09 19:08:34 765

原创 Java面试题25——Java中switch多重选择语句块

Java中switch多重选择语句块switch 的特点是可以判断多个条件,if 的特点是执行少量判断,它们两个刚好形成互补的关系。switch 语法格式:switch(…){ case 1: … break; … default: … break; }switch 基础使用:int i = 3;switch (i) { case 1: System.out...

2020-01-09 18:53:19 504 1

原创 Java面试题29——时间操作

常见时间操作在JDK8之前,有两个类用来获取时间,分别是date和calendar,在JDK8之后,出现了三个类用来获取时间。分别是localtime、localdate、localdatetime。之前的两个类线程不安全的,而后面三个类为不变类,线程安全。以下总结有关获取时间、时间戳、时间间隔等一些方法。获取当前时间的方法有以下三种。//使用date方法,直接new一个即可。...

2020-01-09 14:11:43 376

原创 Java面试题28——数组

数组1.数组的常用方法1.sort:排序 Arrys.sort(arr);2.toString:转换成字符串 Arrays.toString(arr)3.binarySearch:二分法查找 Arrays.binarySearch(arr,"dog")4.asList:转换成集合 Arrays.asList(arr); Arrays.asLis...

2020-01-09 13:30:25 185

原创 Java面试题27——详解binarySearch

详解binarySearch学习binarySearch方法时,由于没有提前对数组中的值进行排序再查找,导致查找的结果有误,所以在此处记录一下:例1: String[] arr18= {"dog", "cat", "pig", "bird"}; int result = Arrays.binarySearch(arr18, "dog"); Sy...

2020-01-09 12:59:11 338

原创 Java面试题24—— ++/-- 操作

++/-- 操作一.概念和习题解答自增i++和 ++i的区别前者后后者都是是变量i自增1,但两个操作的返回值不同i++返回的值为自增前的值,而i++返回的值为自增后的值自减i-- 和–i的区别前者后后者都是是变量i自减1,但两个操作的返回值不同i–返回的值为自减前的值,–i返回的值为自减后的值来看几道习题int i = 0;//变量i的初始值为0i = i++;...

2020-01-07 20:25:30 185

转载 Java面试题23——字符串详解

一.字符串的特性String 是标准的不可变类(immutable),对它的任何改动,其实就是创建了一个新对象,再把引用指向该对象;而不可变类一个很重要的特定就是不可以被扩展、继承,因为不可变类被声明为finalString 对象赋值之后就会在常量池中缓存,如果下次创建会判定常量池是否已经有缓存对象,如果有的话直接返回该引用给创建者。二.字符串的方法字符串的拼加方式Strin...

2020-01-07 19:24:20 150

转载 Java面试题22——不变类

Java中的不变类在上一篇中,我们讲了Java的参数传递过程中较为特殊的String类和Integer类,它们不能简单通过方法对其值进行修改。因为两个都是不变类。那什么是不变类呢?什么是不可变类?不可变类:其实例不能被修改的类。每个实例中包含的所有信息都必须在创建该实例的时候提供,并在对象的整个生命周期内固定不变。Java平台中包含许多不可变类,包括String,基本类型的包装类,BigI...

2020-01-07 18:38:29 162

原创 Java面试题21——参数传递中的值传递

参数传递中的值传递参数传递中的值传递当一个对象被当作参数传递到一个方法后,在此方法内可以改变这个对象的属性,那么这里到底是值传递还是引用传递?**答:是值传递。**Java 语言的参数传递只有值传递。当一个实例对象作为参数被传递到方法中时,参数的值就是该对象的引用的一个副本。指向同一个对象,对象的内容可以在被调用的方法内改变,但对象的引用(不是引用的副本) 是永远不会改变的。​ ...

2020-01-07 18:22:24 352

原创 Java面试题20——包装类

包装类1.为什么需要包装类?有两个原因Java思想是万物皆对象,所以使用包装类符合Java面向对象编程的特定Java中的基本数据类型没有方法和属性,而包装类就是为了让这些拥有方法和属性,实现对象化交互。包装类包含多个方法和属性,比如getClass、hashCode、equals、max和min方法等。2.包装类的功能和特点?功能丰富:包装类包含了有 hashCode、getC...

2020-01-07 12:58:18 689

转载 Java面试题18——Java概述

1. Java 语言都有哪些特点?答:Java 语言包含以下特点。面向对象,程序容易理解、开发简单、方便;跨平台,可运行在不同服务器类型上,比如:Linux、Windows、Mac 等;执行性能好,运行效率高;提供大量的 API 扩展,语言强大;有多线程支持,增加了响应和实时交互的能力;安全性好,自带验证机制,确保程序的可靠性和安全性。2. Java 跨平台实现的原理是什么?...

2020-01-07 12:56:43 183

原创 Java面试题19——Java内存泄漏

1.Java 语言都有哪些特点?答:Java 语言包含以下特点。面向对象,程序容易理解、开发简单、方便;跨平台,可运行在不同服务器类型上,比如:Linux、Windows、Mac 等;执行性能好,运行效率高;提供大量的 API 扩展,语言强大;有多线程支持,增加了响应和实时交互的能力;安全性好,自带验证机制,确保程序的可靠性和安全性。2. Java 跨平台实现的原理是什么?答:要...

2020-01-06 22:28:34 333

转载 Java面试题17——Java程序是如何执行的?

Java程序是如何执行的?其实不论是在开发工具中运行还是在 Tomcat 中运行,Java 程序的执行流程基本都是相同的,它的执行流程如下:先把 Java 代码编译成字节码,也就是把 .java 类型的文件编译成 .class 类型的文件。这个过程的大致执行流程:Java 源代码 -> 词法分析器 -> 语法分析器 -> 语义分析器 -> 字节码生成器 -> 最终...

2020-01-06 22:20:51 188

转载 Java面试题16——类型转换中的符号扩展

类型转换中的符号扩展有没有想过这么一个问题, 当把一个byte的负数转换为int时, 它的值是正数还是负数呢? 当把一个int强制转为为byte, 我们能否确定转换后数字的符号呢? 要理解这两点, 我们首先要明白计算机中数的表示, 和Java中类型转换时进行的操作.a. 计算机中数的表示计算机中的数都是以补码的形式存储的, 最高位是符号位. 正数的补码是它本身, 而负数的补码是原码按位取反后...

2020-01-06 22:08:23 301

原创 Java面试题15——原码、反码和补码

原码、反码和补码计算机中数的表示,计算机中用补码来表示整数机器数的概念在计算机内部,所有信息都是用二进制数串的形式表示的。整数通常都有正负之分,计算机中的整数分为无符号的和带符号的。无符号的整数用来表示0和正整数, 带符号的证书可以表示所有的整数。由于计算机中符号和数字一样,都必须用二进制数串来表示,因此,正负号也必须用0、1来表示。通常我们用最高的有效位来 表示数的符号(当用8位...

2020-01-06 22:06:53 1438

原创 Java面试题14——基本数据类型和数据类型转换

基本数据类型和数据类型转换一.基本数据类型整数类型默认为int类型,浮点类型默认为double类型。整数类型的byte、short、int和long分别是8位、16位、32位和64位的有符号整数,分别占据1字节、2字节、4字节和8字节。float和double类型分别占据48位和64位。char类型的是16位的无符号整数,与c语言不同,它占据2个字节。布尔型的占据1个字节。具体如下图所示:...

2020-01-06 20:35:16 436

原创 Java面试题13——线程安全之ReentrantLock和synchronized的面试题

上一篇,也就是第12篇的内容可以出好几道面试题,面试题如下1.说说线程安全问题?线程安全:线程安全指的是要控制多个线程对某个资源的有序访问或者修改,而这些线程之间没有冲突。而线程安全问题指的是多个线程同时访问一个资源时产生的数据污染或者丢失的情况产生线程安全问题的两个条件多个线程操作共享的数据操作共享数据的线程代码有多条2.ReentrantLock常见的方法有哪些?lo...

2019-12-27 16:39:14 359

原创 Java面试题12——详解线程安全之synchronized和reentrantlock

详解线程安全之synchronized和reentrantlock1.线程安全概念:线程安全问题指的是在多线程中,各线程因为同时操作所产生的数据污染或其他非预期的程序运行结果如下面的代码就是因为线程1和线程2同时操作,造成数据不正确 package demo; public class ThreadSafeTest extends Thread{ stat...

2019-12-27 15:48:51 263 1

原创 Java面试题11——停止线程的四种方法

共享变量可见性问题及中断线程的方法。1.线程间的共享变量为什么有时会不一致,如何解决该问题?在Java虚拟机中,变量的值保存到主内存中,线程访问主内存时,会先获取一个副本,并保存在自己的工作内存中,如果线程修改了变量的值,jvm会在某个时刻将修改的值写入主内存中,但是这个时间是不确定的。这会导致如果一个变量更新了变量的值,但另一个变量读取的还是更新前的值。为了解决线程间共享变量的可见性问...

2019-12-27 13:50:24 352

原创 Java面试题10——线程的生命周期

线程的生命周期1.进程和线程概念进程:一个任务就称之为一个进程,进程是系统资源调度和分配的基本单位,占据独立的内存空间和一组系统资源。一个进程可以称为一个程序。线程:线程依赖于进程存在,可以看做是程序执行的单元。用于独立的程序入口、顺序执行流、程序出口。多个线程共享一块内存空间和资源。而线程开辟在栈中,也就是说一个进程调用了一个方法,这个方法在栈中开辟一个空间,也可以认为是线程的空间。...

2019-12-27 12:08:31 270

原创 Java面试题9——sleep()、wait( )、join( )和yield( )四个线程方法的区别

1.sleep( )和wait( )有什么区别?sleep方法在指定的毫秒数内让当前正在执行的线程休眠,此操作受到系统计时器和调度程序精度和准确性的影响。让其他线程有机会执行,但它不会释放锁,也就是如果有synchronize代码块,其他线程仍然不能访问共享数据。该方法需要捕获异常。该方法可以使低优先级、同等优先级、高优先级的线程都有执行的机会。sleep方法为线程类的方法,而wait...

2019-12-27 11:33:47 402

原创 Java面试题8——创建线程的三个方法

创建线程的三个方法1.继承thread类创建线程类第一步:定义thread类的子类,并重写该类的run方法,run方法的方法体就代表了线程需要完成的任务第二步:创建thread类的子类的实例,即创建了线程对象第三步:调用线程对象的start方法来启动该线程以下为第一种创建方式的代码示例及其部分运行结果//定义继承Thread类的子类public class TThread ext...

2019-12-26 16:46:32 220

原创 Java面试题7——抽象类和接口的区别

抽象类和接口的区别1.抽象类使用abstract修饰,抽象类中不能实例化,抽象类必须被子类继承后才能使用。所以抽象类不能使用final或者private或者static修饰。final修饰的方法不能被覆盖,private是因为不能继承到子类,也就不能覆盖,而static可以覆盖,但是调用时会调用编译时类型的方法,因为调用的是父类的静态方法,而父类的方法又是抽象的方法,又不能调用,所以不能使用...

2019-12-25 20:40:49 435

原创 Java面试题6——详解static、final关键字

详解static、final关键字在讲解之前,先来说说几个概念类的加载jvm将java文件编译成class文件后,以二进制流的方式存放到运行时数据的方法区中,并在java的堆中创建一个java.lang.Class对象,用来指向存放在方法堆中的数据结构。类的生命周期类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸...

2019-12-25 20:07:00 288

原创 Java面试题5——final、finally和finalize的区别

final、finally和finalize的区别1.final为修饰符final为Java关键字,用来修饰类、属性、方法。如果一个类被声明为final,意味着不能派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract,又被声明为final。将变量和方法声明为final,可以保证他们在使用时不被改变。被声明为final的变量必须在声明时给定初始值,而在以后的引用只能...

2019-12-25 17:11:03 202

转载 Java面试题4——面向对象编程的三个特征

转载一篇文章面向对象的三个基本特征是:封装、继承、多态。对象结构图封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原...

2019-12-25 16:29:03 385

原创 Java面试题3——访问修饰符

1.Java中的访问修饰符(1)私有权限:privateprivate修饰类中的数据成员、构造方法和方法成员,不能用来修饰类,内部类除外。(2)默认权限:default类、数据成员、构造方法和方法成员都能够使用默认权限,默认权限即同包权限(3)受保护权限:protectedprotected可以修饰数据成员、构造方法和方法成员,不可以修饰类,内部类除外(4)公有权限public可以...

2019-12-25 15:56:06 287

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除