自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JUC java并发编程

1. java 开启线程的三种方式实现 Runnable 接口;实现 Callable 接口;继承 Thread 类。实现 Runnable 接口:重写run方法Runnable接口: 函数式接口@FunctionalInterfacepublic interface Runnable { public abstract void run();}实现 Runnable 接口,重写run方法public class MyRunnable implements Ru

2021-08-08 18:15:41 138

原创 java 容器

java 容器容器主要包括 Collection 和 Map 两种,Collection 存储着单个对象的引用,而 Map 存储着键值对(两个对象)的映射表。1.CollectionIterable 接口下面是 Collection,Collection接口是单元素集合,下面主要有三个分支,分别是 List、Set、Queue。List: 主要实现类有 ArrayList,LinkedList、Vector ArrayList:基于动态数组实现,支持随机访问。 Vector:和 Array

2021-08-08 01:16:53 180

原创 java equals() 和 hashCode()学习

1.深入理解 equals() :即比较两个对象的内容是否相等,没有重写 Object的 euqals()时结果如下:public class TestEquals { public static void main(String[] args) { Cat c1 = new Cat(1, 1, 1); Cat c2 = new Cat(1, 1, 1); System.out.println("c1==c2的结果是:"+(c1==c2)); //

2021-08-07 18:55:13 158

原创 java的 final和 static关键字 及四大内部类

1. final1). 类被 final修饰类不允许被继承。2). 方法被 final修饰的方法不能被子类重写。private 方法隐式地被指定为 final,如果在子类中定义的方法和基类中的一个 private 方法签名相同,此时子类的方法不是重写基类方法,而是在子类中定义了一个新的方法。3). 数据声明数据为常量被final修饰的 局部变量可以先声明,在使用前再初始化,但初始化不可再变。被final修饰的 属性可以先声明,但必须在构造函数中初始化,一但初始化不可再变。对于基本

2021-08-06 23:11:49 96

原创 JAVA String 学习

String 基本学习1. String在 jdk1.8的源码:String 被声明为 final,它不可被继承 (Integer 等包装类也不能被继承)。在 Java 8 中,String 内部使用 char 数组存储数据。public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for chara

2021-08-06 22:32:03 63

原创 java数组的四种拷贝方法

1. Systen.arrayCopy(Object src, int srcPos, Object dest, int destPos, int length)对原数组和目标数组之间进行拷贝,指定拷贝起点和长度,原数组和目标数组类型须一致。属于浅拷贝!!!Person[] a={new Person("aaaaaa"),new Person("bbbbbb")};Person[] b=new Person[2];System.arraycopy(a,0,b,0,2); //将a拷贝给ba[1

2021-08-06 19:10:39 233

原创 java 反射:入门、使用、原理

java 反射反射之中包含了一个「反」字,所以想要解释反射就必须先从「正」开始解释。Apple apple = new Apple(); //直接初始化,「正射」apple.setPrice(4);上面这样子进行类对象的初始化,我们可以理解为「正」。而反射则是一开始并不知道我要初始化的类对象是什么,自然也无法使用 new 关键字来创建对象了。这时候,我们使用 JDK 提供的 反射 API 进行反射调用:Class clz = Class.forName("com.chenshuyi.ref

2021-08-05 19:10:59 83

原创 java注解(Annotation)

Java 注解(Annotation)Java 中的 类、方法、变量、参数和包 等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。java内置的注解Java 内置了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation 中。java.lang 包下:@Over

2021-08-05 11:11:45 119

原创 spring学习之 @Configuration的使用及其原理

@Configuration的使用@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。 @Configuration基于 @Component,意味着配置类自身就是个bean。AnnotationConfigApplica

2021-08-04 21:19:10 2875 1

原创 java包装类型和基本类型

对于 Integer 来说,java会缓存 -128到127的Integer对象,超过此范围则会创建Integger对象如 new Integer(10000);我们使用集合类时,如set.add(1000) 则java会自动new Integer(1000)放入set中,若放入的为[-128,127],则放入集合的是缓存中的Integer,但若有 list.add(10000)连续执行两次,则list.get(0) != list.get(1),因为两次new了两个 Integer(1000)。..

2021-08-03 10:41:49 96

原创 spring 基本学习

第一章 Spring 概述1.1 spring特点spring就是一个java框架,使用java语言开发的, 轻量级的, 开源的框架。 可以在j2se、j2ee项目中都可以使用。spring又叫做:容器, spring容器装的是java对象。 可以让spring创建java对象, 给属性赋值。管理对象的生命周期。spring核心技术: ioc, aopspring作用: 实现解耦合, 解决java对象之间的耦合, 解决模块之间的耦合。tomcat也是容器:管理的是servlet, filter、

2021-07-31 18:34:18 402 1

原创 springmvc拦截器

SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。过滤器与拦截器的区别:拦截器是AOP思想的具体应用。(aop执行环绕)过滤器:servlet规范中的一部分,任何java web工程都可以使用(属于javax.servlet包)。在url-pattern中配置了/*之后,可以对所有要访问的资源进行过滤拦截器:拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用

2021-03-18 19:39:16 62

原创 ssm整合

SSM整合环境要求:IDEAMySQL 5.7.19Tomcat 9Maven 3.61. 创建一个存放书籍的数据库表CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id',`bookName` VARCHAR(100) NOT NULL

2021-03-17 15:24:20 88

原创 springmvc-restful风格

概念Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。功能资源:互联网所有的事物都可以被抽象为资源资源操作:使用GET,POST、DELETE、PUT使用不同方法对资源进行操作。分别对应 添加、 删除、修改、查询。使用festful风格操作资源使用festful风格操作资源,同一个网址可能有不同的结果,根据请求方式的不同来区分。pathvariable是路径参数@Controllerpubli

2021-03-16 22:12:36 151

原创 springMVC第一个程序

一 . 第一个springmvc程序(配置版)spring框架围绕 DispatcherServlet设计,DispatcherServlet的作用是将不同的请求派发到不同的处理器(Controller),DispatcherServlet实际上是一个servlet, 他继承自Httpservlet基类。我们首先要在web.xml中配置DispatcherServlet,注意dispatcherServlet需要和springmvc配置文件springmvc-servlet.xml绑定。<?x

2021-03-16 21:48:12 221

原创 Spring回忆

spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的框架。首先我们要在maven的pom文件中导包,我们导入spring-webmvc即可,它会帮我们导入所以的相关依赖。相关依赖我们把业务分成dao层,service层,和用户层(controller),业务层调dao层,用户只管调业务层。以往的面向对象程序设计,对象与对象之间的关系是硬编码在程序中的,对象由程序自己创建,控制反转后对象创建移交给第三方,我们认为,控制反转就是获得依赖对象的方式反转了。DI(依赖注入) 是控制反转的一种方法

2021-03-15 20:56:13 101

原创 javase几点注意事项

new int[]{1,2} 直接初始化数组的时候。中括号里不能有数组的长度list to array可以调用 list.toArray()方法,res.toArray(new int[res.size()][]),new 出来的数组必须和list存储的类型一样。注意包装类型也必须new 包装类型。Arrays.sort 只能对各种类型的数组进行排序,包括二维数组,因为二维数组本质也是一维数组, 比较器写法lambda表达式(o1,o2)-> o1-o2Collections.sort只能对.

2021-03-13 14:43:44 47

原创 Mybatis回忆

mybatismybatis是一款优秀的持久层框架,即专门和数据库打交道。他支持定制化SQL,存储过程以及高级映射。mybatis 避免了几乎所有jdbc代码和手动设置参数以及结果集的获取。mybatis 即可使用简单的xml或注解来配置和映射原生类型,接口和POJO。创建 mybatis 项目步骤:创建maven项目,并删除src目录,方便我们创建子模块module。创建好子module。在pom中导入mybatis依耐,其中junit是做单元测试用的 @Test3. 在resou

2021-03-12 23:59:03 110

原创 JAVA集合总结

集合中存储的都是引用。集合在java中就是一个容器,是一个对象,集合中任何时候都是‘引用’;所有的集合类和集合接口都在 java.util.* 里面。集合分单元素集合和双元素集合单元素集合超级父类接口是 Itreable 可迭代的,再往下是 Collection 接口,所有的单元素集合实现了 Iterable 接口都有 iterator()方法,获得迭代器对该集合进行迭代。Collection 接口下面是 List 和 Set,都是单元素,List 里面元素有序可重复,有下标,下标从0开始,.

2021-03-12 15:42:25 690

原创 java 单例模式

java 单例模式1.饿汉式饿汉式存在内存浪费问题,没用到的时候实例直接就初始化了。package com.yang;public class Hungry { //单例模式构造函数必须私有 private Hungry(){ } public static final Hungry hungry=new Hungry();//常量必须当时初始化 public static Hungry getInstance(){ re

2021-03-12 11:34:35 81 1

原创 jdbc复习

首先要在pom文件中导入数据库依耐,mysql-connector-java加载驱动是由 com.mysql.jdbc.Driver类做的,里面有一个static代码块做的,clss.forname()会执行static代码块进行驱动注册。

2021-03-11 21:15:24 55

原创 往数据库里面插入data数据

mysql往数据库里面插入data数据,表的字段是 DATE 时, 直接插入字符串形式的表达即可,如下图。

2021-03-11 19:50:20 2676

原创 MVC三层架构

MVC三层架构什么是MVC,模型,视图,控制器视图就是jsp,控制器是servlet,servlet和jsp本质上一样。servlet 和 jsp 都可以写java代码, 但为了维护和结构清晰, servlet专注于响应请求,控制视图跳转。 jsp专注于显示数据。展示数据模型,提供用户操作。而Dao 层和service层就是model。完成控制层的任务以及和数据库进行交互。MODEL业务处理数据持久化VIEW展示数据提供链接发起servlet请求(a,form,img。。。)C

2021-03-11 19:41:28 131 1

原创 javaweb JSP SERVLET

javaweb JSP SERVLETservletservlet 是java实现动态web的一个接口,配合 jsp实现 B/S 架构,servlet的实现类有 genegatic servlet 和 httpservlet。 httpservlet 继承 genegatic servlet ,genegatic servlet 实现了servlet接口,两个都是抽象类,使用时我们自己定义一个类继承httpservlet即可。JSPjsp就是 HTML 代码里面包含了一些 java代码,本质上

2021-03-11 18:29:41 253

原创 C++的string结束标志问题

C++ string 的基本使用C++ string 字符串 结尾 标志 \0#include<string>using namespace std; int main(){ string str = "hello"; str[3] = '\0'; cout << str << endl; return 0; } 可见c++ 的stl中的string并不以’\0’作为结束标志。#include<string>using names

2020-12-22 11:26:42 8580

原创 markdown编辑器

MarkDown一级标题#号加空格就是一级标题,快捷方式是 ctrl 加(1-6)设置对应行的标题级别标题两个##加空格 就是二级标题三级标题三个#加空格就是三级标题四级标题四个#加空格就是四级标题字体helloworld 两边都是两个*号,则加粗helloworld 两边都是一个*号,则斜体helloworld 两个都是三个*号,则粗斜体helloworld 两边都是两个~号,则代表废弃引用选择马子哥分割线三个 - 号连在一起表示分

2020-12-16 17:09:53 46

空空如也

空空如也

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

TA关注的人

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