- 博客(23)
- 收藏
- 关注
原创 面试官问你:说说“==”、equals、hashCode三者关系
面试题:请谈谈”==“和equals的区别。“==” 介绍"==“是一个判断符号,作用就是判断对象地址是否相等,在此之前我们曾经探讨过一个话题,在Java中是值传递还是引用传递这个话题:来讲讲Java中“引用”这两个字其实不管是值还是引用地址,我们都是将其看成一个”值“的改变。所以使用”==“来判断的时候分两种情况:1、基本数据类型—>比较值。2、引用数据类型(复合数据类型...
2019-12-25 11:21:16 448
原创 Crowdfunding:Spring integration Mybatis configuration data source
1、首先创建spring整合配置文件:2、创建jdbc.properties:jdbc.driver=com.mysql.jdbc.Driverjdbc.user=rootjdbc.password=123456jdbc.url=jdbc:mysql://localhost:3306/crowdfunding?rewriteBatchedStatements=true&...
2019-12-22 20:34:20 152
原创 Spring integrated common configuration
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springfra...
2019-12-22 20:04:40 103
原创 Crowdfunding:SSM Integration Ideas
1、首先来看看思路图:分析:框架搭建好了之后,我们是Controller(或者Handle)去调Service,Service去调Mybatis的Mapper来操作数据库DB。为什么Mapper能够操作数据库呢?回答:有框架提供的支持——数据源DataSource,通过数据源来获取数据库的连接,连接后需要将数据源装配给SqlSessionFactory,在Mybatis中是叫Sql...
2019-12-19 16:46:56 190
原创 Crowdfunding:Spring integrates Mybatis Service interface and classes
1、首先在component中添加mybatis依赖,不需要添加版本,因为父类工程已经有了。2、接着创建工程目录:3、创建service接口以及impl实现类:public interface AdminService {}此时发现没有该注解,因为我们还没有导入Spring的依赖。 <dependencies> <dependency...
2019-12-19 15:24:02 158
原创 关于HashMap,90%的人都不知道的点!
提示:本篇文章为上篇文章的延续,需要理解上篇文章内容才能对本篇内容进行理解。前篇回顾: 上篇文章我们讲解了hash函数作用、hash值的计算、hash碰撞的解决。文章: 细粒度拆分HashMap<2>,吊打面试官!以及分析了为什么要用">>16",因为hash表是使用2的幂次方倍(也就是说HashMap数组长度取2的整数幂)进行掩码(也就是代码中的异或"^")的...
2019-12-17 18:29:16 366
原创 细粒度拆分HashMap<2>
对于上篇文章遗漏了一点:在进行<<、>>和>>>运算的时候需要考虑正负的情况<<:不分正负数,低位补0;“>>”:如果该数为正,则高位补0,若为负数,则高位补1;“>>>”:若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0在面试HashMap的时候,你是不是背面试答案还是真的有去研究分析源...
2019-12-16 18:46:53 256
原创 细粒度拆分HashMap<1>
之前有写过一篇文章,对HashMap进行源码解析:HashMap源码解析&&学习方法文章虽然很详细的分析HashMap的内部结构,但是篇幅太长,且以注释的方式进行展示,不利于读者阅读。所以这里将对HashMap进行细粒度的拆分整理,方便读者的理解。为了能让读者更加好的理解源码中的含义,为此列出源码中出现的一些关键字以及运算符进行讲解:准备:#HashMap中的关键...
2019-12-14 22:43:58 475 1
原创 深入理解Integer缓存机制
之前有对数据类型做介绍:Java数据类型深度总结。文中就有介绍到在JDK5以及JDK5之后Integer的自动装箱和拆箱。#Integer缓存策略虚拟机将创建在一定范围内(-128到127)的整数缓存到一个对象数组,以便进行重用。缓存:先查缓存,查到了则从缓存中取,没有则重新创建。为什么不说Int缓存策略而是Integer,说明我们的缓存策略是在自动装箱的时候触发。那么啥时候...
2019-12-14 17:59:05 1395 2
原创 [ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin......
[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.5:generate (default-cli) on project crowdfunding-reverse: Execution default-cli of goal org.mybatis.generator:my...
2019-12-09 22:20:52 1088
原创 Crowdfunding:Mabatis Reverse Engineering
Crowdfunding:Database modeling数据库建模使用PowerDesigner,由于项目数据表有点多,并且我们是先实现后台,所以先把管理员表给拿出来:create table t_admin ( id int not null auto_increment, login_acct varchar(255) not null, user_pswd char...
2019-12-09 22:17:00 106
原创 Crowdfunding:Project background engineering construction
Crowdfunding:Project background engineering construction前台:给用户使用的功能。后台:给管理员使用的功能。前端:页面。后端:Java+数据库。项目前台功能:(前台是给用户访问的,考虑大并发场景)SpringBoot+SpringCloud的分布式架构。项目后台功能:(给管理员使用的,访问量小,采用单体架构)...
2019-12-07 21:27:43 249
原创 Crowdfunding:Page functions
Crowdfunding:Page functions从今天开始我们来学习一个项目:叫众筹网,单体架构版。首先根据项目的页面原型来了解下该项目的功能:一、首页(自上而下的介绍)1、登录+注册功能:登录+登录身份选择+记住我+找回密码+注册+注册身份选择+参数校验,登录界面没有账号就选我要注册,然后跳转注册页面,注册界面有账号就选我有账号,然后就跳转到登录页面。 ...
2019-12-06 18:03:46 455
转载 软件开发模式之敏捷开发(scrum)
简介这几年关于敏捷开发在互联网企业中越来越广泛被使用到,运用的比较多的当属scrum敏捷开发和xp敏捷开发,人人都在谈论敏捷开发。那...
2019-12-04 22:44:16 400
转载 软件生命周期模型——瀑布模型
模型概述 瀑布模型是一个经典的软件生命周期模型,也叫预测型生命周期、完全计划驱动型生命周期。在这个模型里,在项目生命周期的尽早时间,要确定项目范围及交付此范围所需的时间和成本。 在这个模型里,项目启动时,...
2019-12-04 22:42:43 1534
原创 【es6】ECMAScript6语法:解构赋值的用途
变量解构赋值的用途(1)交换变量的值let x = 1;let y = 2;[x, y] = [y, x];(2)从函数返回多个值将它们放在数组或对象里返回。// 返回一个数组function example() { return [1, 2, 3];}let [a, b, c] = example();// 返回一个对象function ...
2019-12-03 01:12:40 106
原创 【es6】ECMAScript6语法:解构赋值之圆括号问题
变量解构赋值之圆括号问题只要有可能导致解构的歧义,就不得使用圆括号:第一种情况:变量声明语句(错误示范)let [(a)] = [1];let {x: (c)} = {};let ({x: c}) = {};let {(x: c)} = {};let {(x): c} = {};let { o: ({ p: p }) } = { o: { p: 2 } };f...
2019-12-03 00:57:16 286
原创 【es6】ECMAScript6语法:【函数参数】解构赋值
变量解构赋值之函数参数的解构赋值function add([x, y]){ return x + y;}add([1, 2]); // 3解析,上面函数的参数表面是一个数组,传入参数的时候,数组参数就被解构成变量x和y,所以就能对该函数参数进行解构赋值:[[1, 2], [3, 4]].map(([a, b]) => a + b);// [ 3, 7 ]...
2019-12-03 00:45:29 314 1
原创 【es6】ECMAScript6语法:【字符串、数值、布尔值】解构赋值
变量的解构赋值之(字符串、数值、布尔值)的解构赋值一、字符串:类似数组的操作:const [a, b, c, d, e] = 'hello';a // "h"b // "e"c // "l"d // "l"e // "o"还有,类似数组的属性:length属性,也能对这个属性进行解构赋值:let {length : len} = 'hello';len /...
2019-12-03 00:34:48 294
原创 【es6】ECMAScript6语法:【对象】解构赋值
变量的解构赋值之对象的解构赋值:let { foo, bar } = { foo: 'aaa', bar: 'bbb' };第一个特点:数组的解构赋值是按照次序进行赋值,而对象是根据位置进行赋值。需要注意的一点:变量需要和属性保存一致。也就是说要一致才能找到位置。let { bar, foo } = { foo: 'aaa', bar: 'bbb' };foo // "aa...
2019-12-03 00:27:56 363
原创 【es6】ECMAScript6语法:【数组】解构赋值
变量的解构赋值:数组的解构赋值解构:按照一定模式,从数组和对象中提取值,对变量进行赋值。第一个特点:模式匹配let [a, b, c] = [1, 2, 3];还能嵌套:let [foo, [[bar], baz]] = [1, [[2], 3]];foo // 1bar // 2baz // 3还有这种情况:let [ , , third] = [...
2019-12-02 23:15:15 286
转载 【es6】ECMAScript6语法:globalThis对象
globalThis对象:JavaScript 语言存在一个顶层对象,它提供全局环境(即全局作用域),所有代码都是在这个环境中运行。但是,顶层对象在各种实现里面是不统一的。浏览器里面,顶层对象是window,但 Node 和 Web Worker 没有window。浏览器和 Web Worker 里面,self也指向顶层对象,但是 Node 没有self。Node 里面,顶层对象是gl...
2019-12-02 00:13:13 736
原创 【es6】ECMAScript6语法:const命令
const命令:作用:声明一个常量,一旦声明,常量的值就不能改变。其实和Java中的final很相似。第一个特点:作用域和let一样,只有在声明所在的块级作用域中有效。并且是要在声明后的位置才能使用。第二个特点:和Java中final一样,对于变量来说不能改变的不是值,而是该变量的内存地址的指向,也就是引用不能改变。也就是说对复合类型的数据,const只能保...
2019-12-01 23:50:11 238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人