自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

java小白翻身

java小白翻身

  • 博客(316)
  • 资源 (8)
  • 收藏
  • 关注

原创 javascript百炼成仙 第一章 掌握JavaScript基础01 初入宗门

乐阳村,处于脚本大陆东部的边缘地带,民风淳朴,村名日出而作,日落而息。这一日清晨,所有村民来到村庄的门口,正在为一个十五六岁的少年送别。只见那少年虽然身体瘦弱,可是目中绽放出异彩,身躯虽不壮实,倒也挺拔。“叶小凡,你是我们全村人的骄傲,百年来唯一一个具备修行JavaScript甲等资质的孩子!马上会有千鹤派的大人来接你,今后你一定要认真修行,给我们全村的人争光!”他叫叶小凡,几天前通过了修行资质的检验,符合修行JavaScript的资质。“千鹤派!”叶小凡眼前一亮,语气中伴随着激动,两眼放光。千鹤派,

2021-10-06 08:40:07 121451 111

原创 Java笔试复盘

今天去参加了一场国企单位的笔试,很基础,但是有些细节的地方还是觉得答得不好,所以复盘一下。

2022-11-11 16:07:48 353

原创 [兔子私房课] Mybatis开发详解与项目实战02

大家好,本章主要讲解mybatisPlus的日志配置和ID生成策略!

2022-11-01 20:29:57 175 1

转载 大厂面试:一个四年多经验程序员的BAT面经(转载)

过几个月就是金三银四的求职旺季了,如果你也正在找机会,并且也是几年工作经验的话,我想我的文章或多或少能给你些许帮助,这里也衷心祝愿想跳槽的各位看官,希望你们都能拿到理想的offer。

2022-10-31 22:22:44 68

原创 大厂面试,欢聚时代四年多经验的Java面经

以我个人的经验来看,处理秒杀的高并发场景无非两种方案,要么同步,要么异步,实际操作无非就是加机器或者是放到队列等待,当然,实际要考虑的点非常的多,在高流量下所有的业务缺陷都会被无限放大,你需要考虑各种异常的情况做好预防措施,还有补偿机制,限于篇幅,我无法在这里给大家讲解太多,而且我本人也并非对所有的场景有处理经验,只能介绍几点思路让大家去思考,还有未来有什么职业规划之类的,这些问题也是因人而异,虽说没什么难度,但事前准备的好点还是更利于你面试的过程表达流畅的,所以,也建议大家可以多准备下软实力方面的题。

2022-10-31 22:18:31 48

原创 Maven面试题

Maven 的仓库只有两大类:1、本地仓库。2、远程仓库。在远程仓库中又分成了 3 种:中央仓库。私服。其它公共库。Maven 会先搜索本地仓库(repository),发现本地没有然后从远程仓库(中央仓库)获取。但中央仓库只有一个,最好从其镜象处下载。国内可以用阿里云下的服务器。【其它公共库】 也有通过 Nexus 搭建的私服进行获取的。【私服】

2022-10-31 22:01:04 108

原创 types. Found: ‘com.baomidou.mybatisplus.annotation.IdType‘, required: ‘java.lang.String‘

被自己蠢哭了,今天设置表的主键为自动递增,就写IdType,死活报。ID设置的是Long类型,数据库也加了递增,怎么就报这个错呢?后来发现了原因,笑哭。

2022-10-30 14:12:10 31

原创 [兔子私房课]MybatisPlus开发详解与项目实战01

大家好,我是兔子老师。那么从今天开始呢,就由我来带领大家来了解一下Mybatis-plus这个框架。为什么他叫Mybatis-plus呢,它和Mybatis又有什么关系?https://baomidou.com/ 这是官网。为简化而生,对Mybatis只做增强,不做改变。MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

2022-10-29 14:27:32 791 5

原创 一文就读懂RPC远程调用核心原理

rpc的全称是Remote Procedure Call,即远程过程调用,是分布式系统的常用通信方法。Remote,简单来说的话就是两个不同的服务之间,两个服务肯定是两个不同的进程。因此,我们就从跨进程进行访问的角度去理解就行了。Procedure,意思是一串可执行的代码,我们写Java的方法,就是一段课程行的代码。Call,即调用,调用的就是跨了进程的方法。综上,rpc就是跨进程去调用一个方法代码。举一个例子,你从QQ打开QQ空间,会弹出浏览器,自动访问你的QQ空间。

2022-10-26 20:19:44 203

原创 JavaWeb编年史(黄金时代)

从JavaWeb编年史的远古时代,一直到白银时代,我们见证了JavaWeb开发模式的大致变迁。说白了,就是不断解耦合的过程。接下来我们来聊聊项目架构的演变,之所以我把它划到了JavaWeb编年史(黄金时代),是因为在早期的JavaWeb项目中,很少有架构的概念,基本就是一个单体项目,然后不断在已有项目上堆砌新的功能。所以,当我们开始有了架构的概念,其实也是一种非常大的进步,我个人称之为黄金时代,哈哈。对于小公司来说,大部分项目都比较小,交给一个人开发足以,使用单体项目也无所谓。

2022-10-26 20:10:26 173 1

原创 JavaWeb编年史(白银时期)

经典三层架构模式,把项目分成了三层,分别是表示层,业务层,和数据库链接层。这个模式实现了对项目的横向拆分,使得项目的层次结构变得清晰无比。但是,此时的表现层还是用传统的Servlet,一个Servlet程序只能应对一个URL请求。但是当项目越做越大,请求url的种类越来越多,就会难以招架。于是,人们迎来了框架时代。所谓框架不出,谁与争锋?从最早的SSH架构,到后面经典的SSM架构,实际上都是着重解决了同一个问题,那就是路由分发的难题。由于后来Stucts2框架爆出严重的安全漏洞,后面相当长的一段时间内,都是

2022-10-23 21:39:31 285

原创 JavaWeb编年史(青铜时代)

上一节呢,我们简单阐述了远古时期地JavaWeb开发方案,简单来说就是一个Servlet打天下,不管你送什么请求过来,我都要给你返回一整个页面。整个页面都用java拼接出来,可想而知代码是有多么复杂,多么难以维护。要我说,这个时代的程序员都是全才,所谓的全栈工程师。因为你既要懂html页面,css美工,还要会java,数据库,所有的活都是他一个人包了。如果这时候老板说要改页面,做一些特效和动态效果,可想而知程序员看着全部混在一起的代码作何感想。

2022-10-20 22:00:30 238

原创 JavaWeb编年史(远古时期)

作为一个Java程序员,我们更多耕耘的是JavaWeb项目,简单来说就是做网站或者业务系统。随着互联网时代的到来,早期CS架构的项目架构逐渐淡出人们的视野,互联网的气息弥漫在每一个开发者周围,我们习惯于用浏览器来做业务,而java作为这个时代的宠儿,是一门及其重要的编程技术。今天,我们就来聊一聊JavaWeb的一个简明发展历程。JavaWeb的发展历程,就是一个web程序不断解耦的过程,在之后的文章中我会逐渐说明这一点,我参考了大量资料,总结出JavaWeb发展的若干个时代。首先是远古时代。

2022-10-18 22:15:09 463 6

原创 SpringBoot简明教程 - 自动配置原理

Spring Boot在启动的时候从类路径下的中获取指定的值将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作。一般面试的时候,说到这样就差不多可以了。

2022-10-18 20:30:38 278

原创 SpringBoot简明教程-yml配置文件详解

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。以下是我个人编写的SpringBoot简明教程,方便初学者学习,如有不足,敬请指正。首先,我们需要用idea创建一个SpringBoot项目。

2022-10-14 21:52:01 855

原创 用IDEA创建SpringBoot项目

1.打开IDEA,点击 +Create New Project. 开始创建一个新项目。2.在左侧菜单找到并点击 Spring Initializr,点击next。注意,这里idea默认使用https://start.spring.io提供的在线模板,所以需要保证网络畅通。3.按实际情况依次填写项目信息。其中Type属性可以下拉选择project或者pom,Packaging属性可下拉选择jar或者war,我们不用tomcat来部署,而是直接用jar包启动,这样跟之前的学习就可以无缝对接啦!

2022-10-14 21:49:49 67

原创 JavaSE成神之路 - 我创建一个引用后赋值对象(必看)

Hello,今天我们来学习Java的引用概念。先回顾一下昨天的代码。这几个字是用双引号括起来的,在Java中,用双引号括起来的部分叫做字符串,顾名思义,就是若干个字符组成的串串,叫做字符串。当我们写"程序启动了..."的时候,就会开辟一块内存空间,保存这些数据。字符串是一个对象,在java中,对象是存放在堆中的。也就是说,"程序启动了..."是存放在堆中的。堆是Java用来存储对象数据的地方,我们直接写"程序启动了..."的时候,就会创建一个字符串对象。存放到Java堆中。...

2022-08-29 22:19:13 179 1

原创 JavaSE成神之路 - 使用IDE开发Java程序

在上一节的学习中,我们用记事本开发了Java程序。可是实际上,我们不会真的使用记事本来开发的,而是用IDE来编写和运行Java程序。本文介绍用EditPlus来开发的步骤。

2022-08-28 18:04:30 192

原创 JavaSE成神之路 - 编译Java程序

我们在上一节下载了JDK的安装包,解压后又配置了环境变量。这个时候,我们可以说,我们的电脑上已经安装了Java虚拟机,也叫做JVM。说到底,Java虚拟机就是一个软件,和你电脑上的QQ是一回事。这个软件的作用,就是编译和运行某一个.java文件。就是这么回事啦,虚拟机并不神秘,在操作系统的角度看来,它只是一个普通进程。JVM可以编译和运行某一个java文件,比如Demo.java。刚才我们使用了javac命令,虽然啥也没发生,但是cmd窗口也没有报错,这是好事,这说明编译成功了。......

2022-08-28 17:34:38 105

原创 JavaSE成神之路 - JDK安装

什么是环境变量呢?环境变量可以理解为一个快捷方式,如果我们不配置环境变量,jdk能不能用?答案是能,但是不方便。因为我们的jdk是安装在这里的:D:\jdk我们使用jdk实际上是使用的这个:这些exe文件就是jdk的工具入口,我们也是靠他们来编译和运行java程序的。配置环境变量的好处就是,我们可以在其他任何目录,快速地访问某个环境变量里面的文件。环境变量一定是一个目录,一个文件夹。你电脑上有QQ吧,我们右键QQ,打开文件所在的位置,看看QQ安装在哪里?......

2022-08-28 17:07:33 59

原创 volatile关键字

保证内存可见性volatile关键字可以保证所有线程都能看到共享内存中最新的值,比如有一个共享变量a=10,当线程t1修改了a=11,那么t2线程将强行从主内存中读取新的值a=11,而不是读缓存中的a=10的值。这样就保证了内存的时效。保证有序性有序性是指我们的程序代码的执行应该要有一定的先后顺序,从而保证运行结果是正确的,但是Java在编译和运行期对代码的优化,有可能出现程序重排序(指令重排)的情况;被volatile修饰的共享变量相当于屏障,屏障的作用是不允许指令随意重排;不保.

2022-08-19 09:43:38 97

原创 职场PUA:为什么你就不能逼自己一把呢?

最近一则微信消息刷爆朋友圈。原文如下:其实,我对你是有一些失望的。你最初来到这个团队,是低于大家的平均水平的,大家都希望你能够拼一把,快速成长起来。做开发,不是说把代码写好就可以了。你要有架构思维,你写的框架,现在能用,等我们用户量上一个数量级,还能用吗?功能点再翻一倍呢?你在公司得时间也不短了,你比公司其他开发强在哪里?你是否沉淀了一些可以复用的资料和方法论?有任何想法时你都要想一想:为什么是你,而不是别人呢?你要有自己独立的判断能力,而不是我说做什么需求你就写什么代码。后面,把你的思考.

2022-08-11 14:54:39 294

原创 有一说一,外包公司到底值不值得去?

做软件这行,外包公司一向是被人诟病最重的。可事实确实如此吗?外包的缺点确实存在,比如1.个人能力基本在工作上无法提升。外包基本在做重复的工作,技能上只能自己额外时间去提升。2.薪资涨幅跟不上通货膨胀。基于第一点,由于你的能力和入职前保持一致,在外包公司你的薪资每年有普调 1000 已经偷笑了,有人在外包 4年,平均每年只涨了 600 元。而在自研公司每年几乎 2000 的涨幅打底,有额外 kpi 奖励,有额外项目奖金,有年底三薪。3.未来发展。你从外包跳出去,你还是只能以你进外包前的能力去匹

2022-07-27 09:35:38 3061

原创 【Java面试】缓存为什么用Redis而不用MongoDB呢?

分享一道面试题,问出这种问题,我觉得实在是也没什么意思。但是今天还是稍微来分析一下,毕竟总会有人问 1 加 1 为什么等于 2。首先,我们来想一下,既然是用来做缓存,必须要符合哪些特征呢?缓存所要具有的基本特征访问速度要快,不然我直接去数据库查岂不是更好,毕竟就是为了提升某些常态化数据的提取速度和减轻数据库压力,才去使用的缓存模块。支持的存储方式要符合多方面的系统需要,比如不同语言编写的系统交互,是不是要去查询同一个缓存。要比单纯读数据库更加节约成本。能保存的数据量..

2022-07-22 13:44:02 671 2

原创 什么是前端的dom,咱也来定一个“POM”

dom也叫dom对象,是浏览器对HTML文本解析后得到的,留在浏览器内存中的一个JS对象,俗称“文档对象模型”,其实dom元素就是一个浏览器生成的JavaScript对象啦。我看过网上很多对dom的解释,但是我个人感觉很多都不太准确。在我看来,没那么复杂,dom就是一个浏览器根据网页源代码生成的一个JavaScript对象。一个网页,对浏览器而言就是一个大的dom,网页中各个HTML节点,也被称为一个个小dom。既然是对象,自然有很多方法,这是必然的。我们通过dom的对应api...

2022-07-22 09:53:21 265

原创 从数码宝贝看spring bean的生命周期

成长期:Bean的实例化和DI(dependency injection)亚古兽在xml里面配置了,spring读取application.xml文件,实例化亚古兽对象,并且注入“绝招”属性为字符串“小型火焰”。成熟期:检查Spring Awareness亚古兽进入到暴龙兽阶段,但是因为在定义亚古兽的时候,就实现了beanNameAware接口,所以即便他进化成暴龙兽,也知道自己在spring的bean工厂中的ID是【亚古兽001】。完全体:创建bean生命周期回调....

2022-07-21 10:14:29 68

原创 多线程并发情况下的数据一致性问题

首先,有一个静态的布尔变量:publicstaticbooleanflag = false;然后,开启两个线程。A线程:newThread(()-> {System.out.println(Thread.currentThread()+ "start...");while(!flag) {}System.out.println(Thread.currentThread()+ "success...");}).sta......

2022-05-08 10:14:44 1107

原创 实用工具类---给List数据加索引

继承之前的一篇:从非诚勿扰看数据索引,优化代码小妙招直接将这个实用小算法封装成一个工具类。publicclassIndexUtil {/*** List转Map* @param list 原始列表数据(任何实现List接口的数据)* @param keyExtractor (抽取Key值的方法)* @return 加了索引的数据->Map*/publicstatic <K,V> Map<K,V> fromList(Lis...

2022-05-05 21:35:54 463

原创 尝试用jdk1.6强行装jdk1.8的逼-Filter

定义一个断言接口,里面只有一个抽象方法。publicinterfacePredicate<E> {boolean test(E e);}设计一个Lsit,直接继承ArrayListpublic classSuperList<E>extendsArrayList<E>{privatestatic finallong serialVersionUID=1L; SuperList<E> f...

2022-05-05 21:08:23 298

原创 不用session也能随时获取globalUser,用ThreadLocal也太香了

之前一直不明白,为什么用shiro之类的框架,为什么我们可以在任何地方,只要写上一句SubjectUtil.getCurrentUser,就可以得到当前的登录用户。按照道理,最初学web的时候,都会被告知有一个叫做session的东西,然后通过request对象就可以得到session,用户登录后,把用户信息存到session里面就可以了。代码一般是这样:request.getSession().getAttribute('currentUser');可是这样就有个麻烦的地方,如果我是在某个

2022-05-04 10:19:50 342 3

原创 Vue+JS+layUI 完成预览模式功能

1.预览模式更新站点:java小白翻身官网(网址:java18.cn)更新原因:方便浏览文章,和步骤阅读法相得益彰。更新内容:PC端在具体的教程页面,目录下方增加一个预览模式的按钮。点击后会打开一个窗口,里面就是当前的教程,我进行了重新排版。效果如下:因为用了vue,我就不需要再重新后台写接口了,改一下html就搞定。关键代码:<div style="height:30px;"> <el-button @click="openPreview" s

2022-05-03 16:43:45 668

原创 Java Map的Hash算法究竟干了什么?

首先说下hashmap的实现基本逻辑根据key值算出hashcode 用hash算法转换第一步的hashcode,得hash值 将第二步的hash值对内部数组长度进行取模,得到落点p 把value放入这个格子从这些步骤可以看出,hash算法好不好直接决定了落点能否均匀分布。hashMap是键值对的集合,比如key=“Hello”,value=“Hello”。这个Hello拥有自己的hashCode,用如下代码可以看出来。Stringkey= "Hello";System.out...

2022-05-02 08:00:00 357 1

原创 从非诚勿扰看数据索引,优化代码小妙招

抛出问题假如有两组数据,这六个人去参加非诚勿扰,需要做一个配对。数据如下:List<User> usersA = newArrayList<>();usersA.add(newUser("1", "吕布", "10"));usersA.add(newUser("2", "刘备", "11"));usersA.add(newUser("3", "孙悟空", "12"));List<User> usersB = newArrayList...

2022-05-01 23:08:17 166

原创 【VS常量类和 else if】更完美的数据校验,解决码值乱送问题的思路

01假如现在有一个接口,别人调用送过来的请求报文中有个字段叫 vipType,对服务方来说,假设这个数据只有3种类型:1-穷逼VIP ,2-普通VIP,3-尊贵VIP。那么问题来了,这个对应的关系往往只有你自己知道,所以其他系统就得来问你该送什么?如果没有沟通好,或者沟通异常,就会乱送。明明是数字,结果送了一个“VIP1”过来,系统入库直接报错:Data too large... ...多么熟悉的场景,多么熟悉的味道?但是,这根本难不住我们聪明的大脑,设置数据类型啊,vipTy.

2022-05-01 23:07:00 268 1

原创 SpringBoot日记本系统 :关键字搜索BUG(Mybatisplus and和or的问题)

SpringBoot日记本系统 :关键字搜索BUG(Mybatisplus ad和or的问题)目录BUG登记问题复现原因问题代码解决方案BUG登记描述:关键字搜索会搜到别人写的文章标题,包括删除的文章严重程度:严重紧急程度:紧急问题复现随便在搜索栏搜索一个2022,会出现所有标题含有2022的文章,包括他人的文章和被删除的文章。不过,如果点进去的话还是看不到的,因为搜索文章的时候加了校验。原因日志搜索代码写法问题。

2022-05-01 19:27:55 884

原创 SpringBoot日记本系统 :详情页-日记类型显示码值问题 解决

BUG登记描述:低版本Edge浏览器,手机浏览器访问登录页面异常严重程度:中等紧急程度:中等问题复现:打开日记详情页,日记类型为数字。原因获取日记详情的时候,未对日志类别进行转码。问题代码解决方案在后台接口中返回中文的日记类型即可。我们可以给TblSynBlog类增加一个blogTypeName字段,用于接收blogType的中文字符。@TableField(exist = false)private String blog.

2022-05-01 19:04:13 510

原创 html学习笔记-用代码画皮卡丘

效果图练习代码.face { width: 600px; height: 320px; background: #FEE443; position: relative;}.eye { width: 60px; height: 60px; border-radius: 100%; background: #222; position: absolute;}.eye-l { left: 105px.

2022-04-30 16:58:35 1498 3

原创 山寨ElementUI之el-button,手写按钮组件

ElementUI是一款非常流行的vue插件库,整合了开发中大多数的组件。最近正好在学习vue,就尝试简单模拟一下el-button的实现。最近正好在学习vue,就尝试简单模拟一下el-button的实现。引入vue核心js<script src="vue.js"></script>2.用Vue.component语法设置全局插件Vue.component('elButton', { name: 'elButton', pro..

2022-04-30 16:43:02 872

原创 接口耗时太久怎么办?适当用点Future做异步~

在JS中,各种回调函数漫天飞,写的代码基本都是异步的,需要靠某个event去trigger。比如点击事件,就是最常见的。但是Java里面做异步就得绕好几弯,还不一定行,需要各种判断和校验,生怕出错。异步执行的好处是显而易见的,比如某个接口需要查好几张表,调很多方法,其中有几个方法是非常耗时的。但是很多代码的做法还是同步的,传统的顺序执行。优点是可读性强,不容易出错。假如A方法耗时特别长的话,那么整合接口的返回就会很慢。比如,现在有一个服务,非常耗时。class AccountServi

2022-04-30 16:35:31 430

原创 从非诚勿扰看数据索引,优化代码小妙招

抛出问题假如有两组数据,这六个人去参加非诚勿扰,需要做一个配对。数据如下:List<User> usersA = newArrayList<>();usersA.add(newUser("1", "吕布", "10"));usersA.add(newUser("2", "刘备", "11"));usersA.add(newUser("3", "孙悟空", "12"));List<User> usersB = newArrayList...

2022-04-30 16:00:28 364 6

flex仿微博布局实战+代码

flex仿微博布局实战+代码 HTML+CSS+FLEX

2022-03-29

博客原型.rar 好看的博客页面,带Ueditor富文本编辑器

好看的博客页面,带Ueditor富文本编辑器

2022-02-26

JavaScript实现桌面级便签系统

JavaScript实现桌面级便签系统

2022-02-26

JavaScript仿抖音案例.zip

JavaScript仿抖音案例.zip

2022-02-25

JavaScript代码实现,HTML页面实时预览.zip

JavaScript代码实现,HTML页面实时预览.zip

2022-02-25

【JavaScript】兔子抢金币发布版.zip

【JavaScript】兔子抢金币发布版.zip

2022-02-25

HTML5植物大战僵尸.zip

HTML5植物大战僵尸.zip

2022-02-25

JavaScript飞机大战项目.rar

JavaScript飞机大战项目.rar

2020-11-21

空空如也

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

TA关注的人

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