- 博客(39)
- 资源 (1)
- 收藏
- 关注
原创 LeetCode(2):1109. 航班预订统计
java实现(提交失败因为内存太大,因为自己想出来的舍不得扔。。)1、首先定义一个二维数组,将bookings数组里面的内容全部转化为二维数组形式2、首先先算出第一个航班的数量就是第一行加起来。3、从第i(i>=2)个航班用i遍历就是从第1行到i-1行的所有,列值为i以后的所有加起来再加上第i行所有4、比如第二次航班是5、第三次航班6、第四次航班package test...
2020-02-28 22:35:16 135
原创 LeetCode(1):面试题33. 二叉搜索树的后序遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。思路1、后序遍历最后一个是根节点。2、左子树都比根节点小,可以循环找到左子树和右子树临界点。3、递归左子树、右子树。java实现class Solution { public boolean verifyPostord...
2020-02-27 23:51:29 97
原创 java动态性(3):字节码操作
一、介绍1、java动态性常用实现方式:反射、字节码操作。2、.java文件经过javac编译成.class文件,.class文件被JVM拿去生成的就是字节码文件。3、操作字节码可以实现如下功能:(1)动态生成新的类。(2)动态改变某个类的结构(添加、删除、修改 新的属性/方法)。4、操作字节码优势:(1)比反射开销小。(2)JAVAasist性能高于反射,小于ASM。二、常见字...
2020-02-19 09:52:07 191
原创 java动态性(2):Rhino脚本引擎执行JavaScript
示例public class Test { public static void main(String[] args) throws ScriptException, NoSuchMethodException { //获得脚本引擎 ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine se = sem...
2020-02-18 16:25:35 220
原创 mybatis入门(5):延迟加载、立即加载
一、延迟加载1、举例:一个用户有100个账户: (1)在查询用户时,用户下的账户信息应该是需要哪个账户就查询哪个账户 (2)在查询账户时应当连带着一起把用户信息也查询2、定义 (1)延迟加载:在真正使用数据时才发起查询,不用的时候不查询,又称为按 需加载(懒加载)。(一对多、多对多) (2)立即加载:不管用不用数据,只要调用方法就马上进行查询。(多对一,一对一)具体...
2020-02-17 23:19:44 96
原创 mybatis入门(4):动态SQL语句(if、where、foreach标签)
一、if标签1、映射配置文件: <!--根据条件查询--> <select id="findUserByCondition" resultType="user" parameterType="user"> select * from user where 1=1 <if test="name!=null"> ...
2020-02-17 15:49:50 258
原创 mybatis入门(3):typeAliases标签和package标签
一、typeAliases标签:取别名1、parameterType为int时可以写int、Integer、java.lang.Integer系统都可以解读为int类型,因为系统内部用typeAliases对其进行了包装。同样自己也可以对自己的Javabean取别名。(在主配置文件中) <update id="updateUser" parameterType="com.hu.be...
2020-02-16 15:44:56 1161
原创 java动态性(1):动态编译
一、通过JavaCompiler动态编译1、第一个参数:为java编译器提供参数。2、第二个参数:得到java编译器的输出信息3、第三个参数:接受编译器的错误信息。4、第四个参数:可变参数(是一个String数组)能传入一个或者多个java源文件4、返回值:0代表编译成功,非0代表编译失败。public static int compileFile(String sourceFile)...
2020-02-15 23:20:15 129
原创 mybatis入门(2):增删改查(CRUD)、模糊查询
目录结构一、主配置文件:SqlMapConfig.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-con...
2020-02-15 17:26:20 101
原创 mybatis入门(1):创建主配置文件和映射配置文件
一、创建主配置文件:SqlMapConfig1、resource->SqlMapConfig.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://myba...
2020-02-14 23:09:48 393
原创 Spring Boot入门(18):缓存_JSR107 / Spring缓存抽象
一、JSR107简介(复杂用的较少,多使用Spring缓存抽象以JSR107为基础)Java Caching 定义了5个核心接口,分别是CachingProvider、CacheManager、Cache、Entry、Expiry1、CachingProvider:定义了创建、配置、获取、管理、和控制多个CacheManager,一个应用可以在运行期间访问多个CachingProvider。...
2020-02-14 20:58:44 128
原创 Java反射机制(3):反射机制操作属性、方法、构造器
一、反射机制的常见作用1、动态加载类、动态获取类的信息(属性,方法,构造器)。2、动态构造对象。3、动态调用类和对象的任意方法、构造器。4、动态调用和处理属性。5、获取泛型信息。6、处理注解。二、bean.User类javabean必须要有无参的构造器 public class User { private int id; private int age; priva...
2020-02-13 15:50:51 119
原创 Java反射机制(2):java动态性、动态语言、反射机制定义举例
一、java的动态性1、反射机制。2、动态编译。3、动态执行JavaScript代码。3、动态字节码编译。二、动态语言1、定义:程序运行时可以改变程序结构或者变量类型如Python、Ruby、JavaScript。//执行s语句的时候又会执行s里面的代码function test(){ var s="var a=3;var b=5;alert(a+b);"; eval(s);...
2020-02-13 11:01:00 225
原创 Java反射机制(1):反射机制读取注解
一、ORM(Objective Relation Mapping):对象关系映射1、类和表结构对应。2、属性和字段对应。3、对象和记录对应。二、类到表的流程1、写好表名对应的注解。2、写好表字段对应的注解。3、将具体的类使用注解。4、反射机制读取注解的内容。(例如类中注解设定的表名,字段名)5、读取出来的表名、字段名、类型、长度、是否为主键转换成SQL语句进行操作。(最后两个有专...
2020-02-12 23:12:02 198
原创 Java注解(1):自定义注解、元注解
一、自定义注解: @Target(value=ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation{ Stirng studentName() default ""; int age() default 0; //若default的值为-1表示不存...
2020-02-12 22:15:51 364
原创 Spring Boot入门(17):数据访问_整合SpringData JPA
一、整合SpringData JPA1、JPA基于ORM思想(Objective Relational Mapping):对象关系映射# 配置数据源spring: datasource: username: root password: 123456 url: jdbc:mysql//127.0.0.1/user driver-class-name: c...
2020-02-12 15:53:58 65
原创 Spring Boot入门(16):数据源(Druid)
一、默认数据源1、SpringBoot默认使用HikariDataSource数据源spring: datasource: data-username: root data-password: 123456 url: jdbc:mysql://localhost:3306/user driver-class-name: com.mysql.jdbc.Driv...
2020-02-11 17:27:55 126
原创 Java多线程(8):并发协作_生产者消费者模式(管程法、红绿灯法)
一、生产者消费者模式1、解决的是线程通信的问题。(解耦、效率高)2、管程法:生产者和消费者之间设置一个缓冲区,生产者和消费者之间的耦合度较低,维护简单。(解耦)3、红绿灯法二、解决线程通信问题的三个方法1、final void wait():表示线程一直等待,直到其他线程通知,与sleep()不同,会释放锁。2、final void wait(long timeout):指定等待的毫...
2020-02-11 11:29:11 266
原创 Java多线程(7):并发_线程同步_队列与锁(Synchronized)
一、并发举例1、两个人同时操作一张银行卡,如何保证线程安全。2、多个人同时购买一张火车票,谁能买到?
2020-02-10 22:09:45 371 1
原创 Spring Boot入门(15):注册servlet、嵌入式servlet容器启动过程、外置的servlet容器
一、注册三大组件SpringBoot是默认以jar包的方式启动嵌入式的servlet容器来启东SpringBoot的web应用,没有web.xml进行配置下面三个1、ServletRegistrationBean2、FilterRegistrationBean3、ServletListenerRegistrationBean @Configuration public class ...
2020-02-09 16:02:07 189
原创 Java多线程(6):优先级、守护线程
一、优先级:priority1、线程优先级1-10,只代表优先执行概率更大,不代表绝对的顺序Thread.MIN_PRIORITY = 1;Thread.MAX_PRIORITY = 10;Thread.NORM_PRIORITY = 5;2、获取线程等级int getPriority()3、设置线程等级void setPriority( int newPriority)4、优先级...
2020-02-08 16:41:43 97
原创 Java多线程(5):线程的生命周期(5种状态)
1、新生状态:new了一个对象之后进入新生状态。2、就绪状态:(1)start()方法进入就绪状态。(2)在运行过程中遇到了阻塞,阻塞事件解除之后进入就绪状态。(3)yield()让出CPU调度之后线程进入就绪状态。(4)JVM从本地线程切换到其他线程。3、运行状态:CPU执行线程。4、阻塞状态:(1)sleep()(2)join()(3)wait()(4)IO操作read...
2020-02-08 16:07:14 330
原创 Spring Boot入门(14):WEB开发
一、引入静态资源(外部定义的例如jquery.js)1、在webjars官网寻找相关资源,然后在pom.xml中进行依赖自动导入2、如选用jquery 3.4.1则在pom.xml中配置如下 <dependency> <groupId>org.webjars</groupId> <artifact...
2020-02-06 17:32:27 155
原创 Java多线程(4):lambda简化线程
一、静态内部类、局部内部类、匿名内部类(定义的线程只使用一次)1、静态内部类:嵌套在另一个类的里面,直接实例化内部的类,外面的类不编译 public class LambdaThread { static class Test implements Runnable{ public void run() { for(int i=0;i<20;i++) { ...
2020-02-05 23:21:09 233
原创 Java多线程(2):Runnable小例子
1、3个黄牛抢99张票,竞争同一资源public class Web12306 implements Runnable{ private int ticketNums = 1; public void run() { while(true) { if(ticketNums<0) { break; } //模拟网络延时 try { ...
2020-02-05 22:55:56 294
原创 Java多线程(1):创建多线程
一、多线程创建方法1、继承Tread类。2、实现Runnable接口。(多用这个接口)3、实现callable接口。二、推荐使用实现Runnable接口1、必须重写run()方法,run()方法是线程体。2、Thread类可以通过start()方法将多线程交给虚拟机进行执行。3、Runnable接口没有start()方法,需要借助新建Thread对象进行代理交给虚拟机执行。 pub...
2020-02-05 21:28:29 488
原创 mysql、Oracle、sql数据库驱动jar包百度云
链接:https://pan.baidu.com/s/1eY9Wwy88G8gjVYCpB9Huug提取码:6ne5
2020-02-04 15:39:17 1167
原创 Spring Boot入门(13):日志
一、日志1、日志框架(推荐)(1)日志门面(相当于Java抽象类):SLF4j(2)日志实现(相当于抽象类的具体实现):LogBack(3)SpringBoot选用 SLF4j和LogBack。2、使用日志(1)开发时候不是调用日志具体实现类,而是调用日志门面。(下面为官方文档),application 调用日志门面slf4j-api.jar,日志门面调用具体的实现类logback-c...
2020-02-04 15:16:09 141
原创 Spring Boot入门(12):各种注解的含义
1、@Configuration:修饰的类是配置类。2、@Bean: 向容器中添加注解下面的类组件。3、@ConditionalOnClass(abc.class):满足abc.class中的的条件则该类生效。4、@ConditionalOnMissingClass(abc.class):容器中没有该类则有效。5、@ConditionalOnMissingBean(...
2020-02-04 09:53:02 162
原创 Spring Boot入门(11):容器中自动配置类源码举例逐行分析
容器中自动配置的类都在project->External Libraries->Maven:…->META/INFO->spring.factories中1、在自动配置原理的最后一步是扫描META-INFO/spring.factories中的资源,将需要的组件注入spring容器中。2、所有的能在application.properties中能都配置的属性都在xxxP...
2020-02-03 23:07:48 189
原创 Spring Boot入门(10):外部配置文件加载顺序
SpringBoot也可以从下面位置加载配置,优先级从高到低,高优先级的配置覆盖低优先级的配置,所有的配置形成互补配置。1、命令行参数:通过命令行打包文件过程中改变配置 java -jar spring-boot-test-SNAPSHOT.jar --server.port=8090 --server.context.path=/abc2、来自java:comp/env的NDI属...
2020-02-03 21:37:19 98
原创 Spring Boot入门(9):配置资源占位符、Profiles多环境支持、修改配置文件加载位置
一、配置资源占位符1、随机数: ${random.value}、${random.int},${random.long}、${random.int(10)}、 ${random.int[1024,65536]}2、占位符获取之前配置的值,入伏哦没有可以用:指定默认值 person.name=张三${random.uuid} person.age=${random.int} pe...
2020-02-03 16:38:35 240
原创 Spring Boot入门(8):@PropertySource和@ImportResource的区别
1、@PropertySource导入制定配置文件 (1)、application.properties是全局配置文件@ConfigurationProperties用来加载全局配置文件中的配置信息进行映射,如果所有东西都放咋全局配置文件中则太不合理。可以专门写一个person.properties专门的配置文件。 (2)、在person.properties中配置JavaBean的pe...
2020-02-03 11:50:35 132
原创 Spring Boot入门(7):@Value与@ConfigurationProperties的区别
1、如果在业务逻辑中只是获取配置文件中某一个值用@Value2、如果写了一个JavaBean来和配置文件进行映射,我们就直接用 @ConfigurationProperties1、松散绑定(Relaxed Binding):@Con…支持下面的所有 --person.firstName :标准方式 --person,first-name :大...
2020-02-03 11:12:13 87
原创 Spring Boot入门(6):SpringBoot各种配置,YAML语法举例
一、配置文件1、SpringBoot使用一个全局的配置文件:可以对一些默认的配置进行修改 (SpringBoot在底层都给我们自动配置好)。 -application.properties -application.yml2、.yml是YAML(YAML ain’t markup language不是标记语言)语言的文件以数据为中心,比json、xml更适合做配置文件...
2020-02-02 17:02:26 412
原创 SpringBoot入门(5):Spring Initializer快速创建Spring Boot项目
特点1、主程序已经自动生成,自己只需要写业务逻辑。2、resources文件夹中的目录结构:(1)static:保存静态资源,例如js,css,images(2)templates:保存所有的模板页面;(Spring boot默认jar包使用嵌入 式的Tomcat,每一个打包好的jar包中会有Tomcat的jar包)默认不支持界面,可以使用模板引擎(freemarker,th...
2020-02-02 15:34:14 141
原创 SpringBoot入门(4):自动配置原理
1、主程序入口的注释@SpringBootApplication:标志主程序入口2、@SpringBootApplication中开启的功能点进@SpringBootApplication源码,@EnableAutoConfiguration开启自动配置功能,向Spring容器自动导入需要的组件3、@EnableAutoConfiguration开启的功能点进@EnableAutoC...
2020-02-02 11:11:39 119
原创 SpringBoot入门(3):helloworld组成部分
定义1、Spring Boot将所有的功能都抽取出来,做成一个个的starters(启动器),只需要在项目里引入这些的starter相关的场景依赖都会导入进来,要用什么功能就导入什么场景的。例如 spring-boot-starter-web:导入了web模块正常运行所依赖的组件。...
2020-02-01 23:22:35 121
原创 SprintBoot入门(2):helloworld
1、创建maven项目可能出现错误:com.google.inject.CreationException: Unable to create injectormaven 3.6.3版本太高,下载安装3.6.02、pom.xml配置,maven设置为自动导包<groupId>org.hu</groupId> <artifactId>springb...
2020-02-01 17:38:15 107
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人