自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (1)
  • 收藏
  • 关注

原创 java函数式接口

1.1 函数式接口概述函数式接口:有且仅有一个抽象方法的接口Java中函数式编程体现就是Lambda表达式,所以函数式接口就是可以适用于Lambda使用的接口只有确保接口中仅有一个抽象方法,Java中的Lambda才能顺利地进行推导如何检测一个接口是不是函数式接口呢?@Functionallnterface放在 接口定义的上方:如果接口是函数式接口,编译通过;如果不是,编译失败注意: 我们自己定义函数式接口的时候,@Functionallnterface是可以选的,就算我们不写这个注解

2021-12-22 14:33:17 1158

原创 Lambda表达式详细解析

1.1 函数式编程四现货概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿数据做操作”面向对象思想强调“必须通过对象的形式来做事情”函数式思想则尽量忽略面向对象的复杂语法:“强调做什么,而不是以什么形式去做”而我们要学习的Lambda表达式就是函数式思想的体现1.2 体验Lambda表达式需求: 启动一个线程,在控制台输出一句话:多线程程序启动了public class LambdaDemo { public static void main(String[] args)

2021-12-22 14:30:04 724

原创 怎么全面的回答equals()和==的区别(面试题常问)

==:== 的作用是判断两个对象的地址是不是相等,也就是说判断两个对象是不是同一个对象(基本数据类型比较的是值,引用数据类型比较的是内存地址)equals():equals() 方法是Object类中的一个方法:public boolean equals(Object obj) { return (this == obj);}在Object类中,equals()方法是用== 来实现的,作用是和==是一样的,比较的是两个对象的内存地址。Java中重写的equals()在java自带的

2021-12-20 15:24:59 368

原创 SpringBoot快速入门(二)

200本编程相关电子书,微信关注程序员王小武 ,回复“电子书”进行获取。# 一、SpringBoot原理分析1.1 SpringBoot自动配置(1). ConditionCondition是在Spring4.0增加的条件判断功能,通过这个功能可以实现选择性的创建Bean操作SpringBoot是如何知道要创建哪个Bean的?比如SpringBoot是如何知道要创建ReadisTemplate的?案例:需求在Spring的IOC容器中有一个User 的 Bean,现要求:导入Je..

2021-12-20 08:38:37 383

原创 SpringBoot快速入门(一)

200本编程相关电子书,微信公众号关注程序员王小武 ,回复“电子书”进行获取。一、SpringBoot概述1.1 SpringBoot概念SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑也不之间进行思维切换,全身心的投入到逻辑也不的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。Spring 缺点配置繁琐虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是..

2021-12-09 15:07:48 113

原创 com.google.code.kaptcha依赖下载失败问题(已解决)

kaptcha是google开源的一个非常实用的验证码生成工具类,可以利用kaptcha生成各种各样的验证码,但是它没有上传到maven中央仓库。方法一:首先下载源码包:http://code.google.com/p/kaptcha/downloads/list连接不到谷歌的可以微信关注公众号 程序员王小五 , 回复”kaptcha“获取jar包解压文件后, 在"kaptcha-2.3.jar"所在的目录下执行命令mvn install:install-file -DgroupId=

2021-12-09 11:02:07 5483 1

原创 Spring入门开发

一、Spring简介1.1 Spring是什么Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IoC (Inverse Of Control:反转控制)和AOP (Aspect Oriented Programming:面向切面编程)为内核提供了展现层SpringMVC 和持久层Spring JDBCTemplate以及业务层事务管理 等众多的企业开级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架1.2 Spr

2021-10-20 10:42:00 605

原创 MySQL从入门到精通

一、配置MySQL服务启动手动cmd --> services.msc 打开服务的窗口使用管理员打开cmdnet start mysql:启动mysql的服务net stop mysql:关闭mysql服务MySQL登陆mysql -u用户名 -p密码mysql -hip -u连接目标的用户 -p对应的密码MySQL退出exitquit二、SQL1.什么是SQL?​ Structured Query Language:结构化查询语言​ 其实就是定

2021-08-24 21:43:45 464

转载 类加载和反射

一、类加载1.1 类加载当程序要使用某各类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化。如果不出现意外情况,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为类的加载或类的初始化类的加载就是指将class文件读入内存,并为之创建一个java.lang.Class对象任何类被使用时,系统都会为之建立一个java.lang.Class对象类的连接验证阶段:用于检验被加载的类是否有正确的内部结构,并和其他类协调一致准备阶段:负责

2021-08-11 18:09:09 351 1

原创 Stream流的使用(java)

1.1 体验Stream流需求: 按照下面的要求完成集合的创建和遍历创建一个集合,存储多个字符串元素把集合中所有以“张”开头的元素存储到一个新的集合把“张”开头的集合中的长度为3的元素存储到一个新的集合遍历上一步得到的集合使用Stream流的方式完成过滤操作list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length()==3).forEach(s -> System.out.println(s));

2021-08-10 10:38:45 2603

原创 函数式接口详解(Java)

1.1 函数式接口概述函数式接口:有且仅有一个抽象方法的接口Java中函数式编程体现就是Lambda表达式,所以函数式接口就是可以适用于Lambda使用的接口只有确保接口中仅有一个抽象方法,Java中的Lambda才能顺利地进行推导如何检测一个接口是不是函数式接口呢?@Functionallnterface放在 接口定义的上方:如果接口是函数式接口,编译通过;如果不是,编译失败注意: 我们自己定义函数式接口的时候,@Functionallnterface是可以选的,就算我们不写这个注解

2021-08-10 10:37:09 19257 3

转载 Lambda表达式的详细介绍

1.1 函数式编程四现货概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿数据做操作”面向对象思想强调“必须通过对象的形式来做事情”函数式思想则尽量忽略面向对象的复杂语法:“强调做什么,而不是以什么形式去做”而我们要学习的Lambda表达式就是函数式思想的体现1.2 体验Lambda表达式需求: 启动一个线程,在控制台输出一句话:多线程程序启动了public class LambdaDemo { public static void main(String[] args)

2021-08-06 17:09:31 117

原创 Java接口的组成部分(扩展)

1.1 接口组成更新概述接口的组成常量public static final抽象方法public abstract默认方法(Java8)静态方法(Java8)私有方法(Java9)1.2 接口中默认方法(Java8)接口中默认方法的定义格式:格式:public default 返回值类型 方法名(参数列表){ }范例:public default void show3() { }接口中默认方法的注意事项:默认方法不是抽象方法,所以不强制被重写。但是可以被重写

2021-08-06 12:50:02 490

原创 Java网络编程(TCP、UDP)

一、网络编程入门1.1 网络编程概述计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及其通信协议的管理和协助下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换1.2 网络编程的三要素IP地址想要让网络中的计算机公狗通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机。而IP地址就是这个标识号。端口

2021-08-05 10:16:39 495 1

转载 Java多线程详解

一、实现多线程1.1 进程进程:是正在运行的程序是系统进行资源分配和调用的独立分配每一个进程都有他自己的内存空间和系统资源1.2 线程线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进程如果只有一条执行路径,则称为单线程程序多线程:一个进程如果有多条执行路径,则称为多线程程序1.3 多线程的实现方式方式一:继承Thread类定义一个类MyThread继承Thread类在MyThread类中重写run()方法创建MyThread类对象启动线程两个小问题:

2021-08-03 19:22:46 133

原创 IO流学习总结(java)

一、FileFile:他是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体的存在的1.1 File类的构造方法方法名说明File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的File实例File(String parent,String child)把父路

2021-07-30 16:10:01 915 7

原创 集合知识点总结【保姆级】

一、Collection集合类的特点:提供一种存储空间可变的存储类型,存储的数据容量可以随时发生改变Collection集合概述是单列集合的顶层接口,他表示一组对象,这些对象也称为Collection的元素JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现创建Collection集合的对象多态的方式创建具体的实现类ArrayListimport java.util.ArrayList;import java.util.Collection;pub

2021-07-21 16:05:08 308 2

原创 JDBC的使用

什么是JDBCJava连接数据库JDBC固定步骤:加载驱动连接数据库向数据库发送SQL对象Statement:CRUD编写SQL(根据业务,写不同的SQL)执行SQL关闭连接public class TestJdbc { public static void main(String[] args) throws ClassNotFoundException, SQLException { //配置信息 String url = "jdbc:mys

2021-06-18 16:28:22 75

原创 filter过滤器

Filter:过滤器,用来过滤网站的数据;处理中文乱码登录验证…Filter开发步骤:导包(不要导错)编写过滤器public class CharacterEncodingFilter implements Filter { //初始化:web服务器启动,就已经初始化了 @Override public void init(FilterConfig filterConfig) throws ServletException { Syst

2021-06-11 09:27:00 85

原创 初识MVC三层架构

MVC三层架构什么是MVC:Model view Controller 模型、视图、控制器Model业务处理:业务逻辑(Service)数据持久层:CRUD(Dao)View展示数据提供链接发起Servlet请求(a, form, img…)Controller (Servlet)接收用户的请求:(req:请求参数、Session信息…)交给业务层处理对应的代码控制视图的跳转登录--->接收用户的登录请求--->处理用户的请求(获取用户登录的参数,usern

2021-06-10 22:57:12 62

原创 JavaBean

JavaBean实体类JavaBean有特定的写法:必须有无参构造属性必须私有化必须有对应的get/set方法一般用来和数据库的字段做映射 ORMORM:对象关系映射表—>类字段—>属性行记录—>对象people表:idnameageaddress1张三18济南2李四20济南3王五19济南实体类:public class People { private int id; priva

2021-06-10 22:12:08 71

原创 JSP详细介绍

一、什么是JSPJava Server Page:Java服务器端页面,也和Servlet一样,用于动态Web技术最大的特点:写JSP就像在写HTML区别:HTML只给用户提供静态的数据JSP页面中可以嵌入JAVA代码,为用户提供动态数据二、JSP原理思路:JSP到底怎么执行!浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet!JSP最终也会被转换成也一个Java类JSP本质上就是一个Servlet内置一些对象:final javax.servle

2021-06-09 20:00:00 190 1

原创 Cookie和Session的比较和用途

一、会话会话: 用户打开浏览器,点了很多超链接,访问多个web资源,关闭浏览器,这个过程就是会话有状态会话:一个网站怎么证明你来过?​ 客户端 服务端服务端给客户端一个信件,客户端下次访问服务端,带上信件就可以了; coolie服务器登记你来过了,下次你来的时候来匹配你二、保存会话的两种技术cookie客户端技术(响应,请求)session服务器技术,利用这个技术,可以保存用户会话信息,我们可把信息或者数据放在Session中常见案例: 登录网站后,你下次不用再登陆了,

2021-06-08 17:29:10 91

原创 servlet详细介绍(Mapping、ServletContext、HttpServletResponse、HttpServletRequest)

一、Mapping <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.wenwu.servlet.HelloServlet</servlet-class> </servlet>一个Servlet也可以指定一个映射路径<servlet-mapping> <servlet-name>H

2021-06-07 22:07:53 261 2

原创 GC垃圾回收机制

GC:垃圾回收机制垃圾回收的区域只有在堆和方法区中JVM在进行GC时,并不是对这三个区域统一回收。大部分时候,回收都是新生代新生代(存活率低,使用复制算法)伊甸区幸存区(form to)老年区(区域大,存活率高,使用标记清除+标记压缩算法混合实现)GC分为:轻GC(普通的GC),重GC(全局GC)GC相关问题:JVM的内存模型和分区模型~每个分区放什么?堆里面的分区有哪些?GC的算法有哪些?复制算法(伊甸园区和幸存区主要是用此算法)标记清除算法

2021-06-05 16:23:44 85

原创 新生区、老年区和永久区

新生区他是一个类诞生和成长甚至死亡的地方伊甸园区:所有的对象都是从伊甸园区new出来的幸存区(0,1)老年区永久区这个区域是常驻内存,存放一些JDK自身携带的Class对象,接口(interface)元数据,存储的是Java运行时的一些环境或者类信息,这个区域不存在垃圾回收,关闭虚拟机会释放这个区域内存jdk1.6之前:永久代,常量池在方法区jdk1.7:永久代,慢慢退化,‘去永久代’,常量池在堆中jdk1.8之后:无永久代,常量池在元空间OOM故障在一个项目中,突然出现了OO

2021-06-05 14:56:48 532

原创 堆(Heap)

三种JVMSun公司的 HotSpotBEA JRockitIBM J9VM堆(Heap)Heap,一个JVM只有一个堆内存堆内存的大小是可以调节的。类加载器读取了类文件后,一般会把类的实例(方法,常量,变量)放在堆中,保存我们所有引用类型的真实对象堆内存中还要细分为三个区域:新生区(伊甸园区,幸存区1,幸存区2)养老区永久区[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E1B8S9O8-1622863247435)(C:\Users\wang

2021-06-05 11:21:29 78

原创 栈:一种数据结构

栈:一种数据结构程序 = 数据结构 + 算法先进后出、后进先出栈内存,主管程序的运行,生命周期和线程同步;线程结束,栈内存就释放了,对于栈来说,不存在垃圾回收问题一旦线程结束,栈就Over栈:8大基本类型 + 对象引用 + 实例的方法栈的运行原理:栈帧栈满了:StackOverflowError错误栈+堆+方法区的 交互关系...

2021-06-04 09:06:26 63

转载 Java对象在内存中实例化的过程

Java对象在内存中实例化的过程在讲 Java 对象在内存中的实例化过程前,先来说下在类的实例化过程中,内存会使用到的三个区域:栈区、堆区、方法区。堆区:存储的全部都是对象,每个对象包含了一个与之对应的 class 类的信息。jvm 只有一个堆区(steap),它会被所有线程共享,堆中不存放基本数据类型和对象引用,它只存放对象本身。栈区:每个线程都包含一个栈区,栈中只保存基本数据类型的值和对象以及基础数据的引用。每个栈中的数据(基本数据类型和对象的引用)都是私有的,其它栈是无法进行访

2021-06-04 09:03:51 1959 2

原创 JVM探究

JVM探究1.JVM的位置JVM运行在操作系统之上2.JVM的体系结构JVM调优一般是指的方法区和堆,大部分都是堆3.类加载器作用:加载Class文件 – new Student();4.沙箱安全机制Java安全模型的核心就是Java沙箱(sandbox),什么是沙箱?沙箱是一个限制程序运行的环境。沙箱机制就是将Java代码限定在虚拟机(JVM)特定的运行范围中,并且严格限制代码对本地系统资源访问,通过这样的措施来保证对代码的有效隔离,防止对本地系统造成破坏。沙箱主要限制系统资源访

2021-06-03 22:20:56 109 1

原创 【注解与反射八】通过反射获取注解信息

简单使用:import java.lang.annotation.*;import java.lang.reflect.Field;//练习反射操作注解public class Test06 { public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException { Class c1 = Class.forName("注解与反射.Student");

2021-06-03 15:28:50 63

原创 【注解与反射七】反射操作泛型

反射操作泛型Java采用泛型擦除的机制来引入泛型,Java中的泛型仅仅是给编译器javac使用的,确保数据的安全性和免去强制类型转换问题,但是,一旦编译完成,所有和泛型有关的类型全部擦出未为了通过反射操作这些类型,Java新增了ParameterizedType,GenericArrayType,TypeVaeiable和WildcardType集中类型来代表不能被归一到Class类中的类型但是又和原始类型齐名的类型ParameterizedType: 表示一种参数化类型,比如Collection

2021-06-03 14:49:14 67

原创 【注解与反射六】动态创建对象执行方法

有了Class对象,能做什么?创建类的对象: 调用Class对象的newInstance()方法类必须有一个无参构造器类的构造器的访问权限要足够//获得Class对象Class c1 = Class.forName("注解与反射.User");//构造一个对象User user = (User) c1.newInstance();System.out.println(user);难道没有无参构造器就不能创建对象了吗?只要在操作的时候明确调用类中的构造器,并将参数传递进去之后,

2021-06-03 14:21:15 121 1

原创 【注解与反射五】反射获取运行时类的完整结构

获取运行时类的完整结构User类在这篇文章中有写到import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;//获得类的信息public class Test04 { public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException,

2021-06-03 10:14:54 64

原创 【注解与反射四】类的加载器

类加载器的作用**类加载器的作用:**将class文件字节码内容加载到内存中,并将这些静态数据对象转换成方法区的运行时数据结构,然后在堆中生成一个代表这个累的java.lang.Class对象,作为方法区中类数据的访问入口。**类缓存:**标准的JavaSE类加载器可以按要求查找类,但一旦某各类被加载到类加载器中,它将维持加载(缓存)一段时间。不过JVM垃圾回收机制可以回收这些Class对象类加载器作用是用来把类(class)装载进内存的。JVM规范定义了如下类型的类的类加载器。**引导类加

2021-06-03 09:03:47 63 1

原创 【注解与反射三】Class类

Class类 对象照镜子(getClass())后可以得到的信息:某个类的属性、方法和构造器、某个类到底实现了哪些接口。对于每个类而言,JRE都为其保留了一个不变的Class类型的对象。一个人Class对象包含了特定某个结构(class/interface/enum/annotation/primitive type/void/[])的有关信息。Class本身也是一个类Class对象只能由系统建立对象一个加载的类在JVM中只会有一个Class实例一个Class对象对应的是一个加载到JVM中的一

2021-06-02 20:29:08 98

转载 【注解与反射二】java的反射机制

反射机制动态语言VS静态语言动态语言:是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点讲就是在代码运行时代码可以根据某些条件改变自身结构。主要动态语言:Object-C、C#、JavaScript、PHP、Python等。静态语言:与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++。Java不是动态语言,但Java可以称之为“准动态语言”。即Java有一定的动态性,我们可以利用反射机制

2021-06-02 19:30:36 76

原创 【注解与反射一】java的注解机制

一、注解机制(一)、什么是注解Annotation是JDK5.0开始引入的新技术Annotation的作用:不是程序本身,可以对程序做出解释(这一点和注释没什么区别)可以被其他程序读取Annotation的格式:注解是以“@注解名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value=“unchecked”)Annotation在哪里使用?可以附在package,class,method,field等上面,相当于给他们添加了额外的辅助信

2021-06-02 17:05:06 64

转载 java多线程--线程池

使用线程池背景:经常 创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的交通工具。好处:提高响应速度(减少了创建线程的时间)降低资源消耗(重复利用线程池中的线程,不需要每次都创建)便于线程管理corePoolSize:核心池的大小maximumPoolSize:最大线程数keepAliveTime:线程没有任务时最多保持多长时间后会终止

2021-06-02 14:16:23 117

转载 生产者消费者模型

生产者消费者模型一、管程法//测试:生产者消费者模型-->利用缓冲区解决:管程法//生产者,消费者,产品,缓冲区public class TestPC { public static void main(String[] args) { SynContainer container = new SynContainer(); new Productor(container).start(); new Consumer(container)

2021-06-02 10:41:55 70

三级数据库技术超级模拟软件.rar

三级数据库技术超级模拟软件.rar

2021-07-14

空空如也

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

TA关注的人

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