自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

notcode11的博客

简单记录一个小小java后端的成长!欢迎关注

  • 博客(43)
  • 收藏
  • 关注

原创 近两个月的自律小总结杂记-送给最光荣的劳动人民

工作提示:各位同学,不能在网络上发布不实言论、不健康言论。网络不是法外之地,传播谣言需担责。写在前面的话感恩、感恩、还是感恩!很多事情已经发生,只是我们暂时不知道-superman若非命运的加持,我们年少时的理想将不值得一题。 若非命运的庇护,我们早就完了。–向罗翔致敬致那黑夜中呜咽与怒吼-《孤勇者》不明白为啥后半句引用的多呢?我觉得前半句写的真实,虽然没在黑夜中怒吼过,但是呜咽过。人生在世,最重要的是什么?在世最重要!-网易云留言聪明、皮实、乐观、自省-朦朦胧胧我感觉

2022-05-01 11:36:51 508

原创 Hibernate--5 基于Hibernate实现CUBD

配置文件CRUD 代码块增加public void testSave(){ Customer c=new Customer(); c.setName("a"); Configuration cfg=new Configuration().configure(); SessionFactory factory=cfg.buildSessionFactory(); Session session=factory.openSession(); Transaction tx=sess

2021-06-16 10:37:53 132

原创 Hibernate--4 实现分页查询

关键代码通过分页查询,一方面减轻数据库查询压力另一方面,节省服务器的内存空间。 PrintWriter out = response.getWriter(); Configuration configuration = new Configuration().configure("./hibernate.cfg.xml"); SessionFactory sessionFactory = configuration.buildSessionFactory();

2021-06-16 10:26:10 119

原创 hibernate-3 为何重写equals()和hashCode()

重写equals()和hashCode()方法意义:保证,不同对象,内容相同的时候,也一样判定相同。让equals从默认比较地址,改成比较内容重写hashCode()保证散列值尽量不同,减少对equals的调用public boolean equals(Object obj) { if(this == obj) return true; if(obj == null) return false; if(!(obj instanceof User)) { return false;

2021-06-13 16:01:33 68

原创 hibernate--2 实例化 查询集合对象

先重写实体类的toString()方法。方便遍历的时候,显示输出调用查询的实例对象,得到实体类集合,采用for循环遍历

2021-06-13 15:52:40 88

原创 hebirnate-1 安装配置并测试开发环境

idea下创建hebirnate项目配置文件中,建立与mysql的连接,指定数据库准备测试的实体类建立关联映射,添加配置类创建工具类,封装连接初始化等操作单例测试

2021-06-13 15:15:57 72

原创 Edgar给您拜年啦--复盘一次煤气灶的维修过程(Everyone can be an engineer)

背景音乐–《稻香》写在前面–工程师的基础感谢父母小时候就支持我拆玩具(尤其我妈挺支持的,导致我一件玩具也没留下来)、选择理科真的挺幸运的!谢谢各位老师同学!正文–文章内容包含危险操作,不建议直接模仿!没有动手能力的同学,请勿亲自尝试!问题复现点火之后,煤气灶自动灭火观察问题,拆解问题点火这步是成功的,说明点火没有问题。自动灭的原因,继续观察。点火成功后,点火器一直点火,不会自动关闭。就这个点我想了很久,整个排障基本上有一个小时吧,我可能前20分钟都是想从这个角度想问题,这就

2021-02-13 09:14:38 1148 2

原创 Edgar--方法论-基础与快速学习能力

首先本应该一一感谢,这一路的改简历,指导学习的同学们和老师们,但是点名总是不好的,尤其其中一个大厂同学告诉我不要发朋友圈,哈哈!那就借用一句许巍老师的歌词吧我那总沉默的朋友,你让我感觉到力量--《晴朗》(许巍)写在前面–可以直接略过面试的第一关,是自我介绍,我觉得要是本来是很好讲的,校园经历嘛。比如说竞赛啊,社团啊。其中还考虑过讲项目,但是基于我简历项目说的比较多,而且他也不会怎么关注要应聘实习生的项目。但是我尝试了很多次,毕竟我本科8年,这里面的故事怎么讲都不顺畅,还有一些讲多了就涉及到个人

2021-02-07 13:42:37 335 3

原创 Edgar校招后端学习--简历技术栈建立过程总结(持续更新)

写在前面当自己真正开始梳理以往学过的知识,会发现很多点有遗忘或者当时了解的就不是很透彻。可以参考相关学过的课程,和别人的简历对自己的技术栈进行一个梳理JAVA–线程相关考点1.说下Sleep和wait的区别sleep()方法sleep方法属于线程类。sleep的线程,首先不一定是调用了同步锁。如果调用了同步锁的话,它不会释放掉同步锁。他仅仅让出cpu,但是锁住的相关对象其他线程无法调用。当sleep时间到的时候,会自动重新抢夺cpu资源,但是不一定能够抢夺到。wait

2021-01-28 13:41:18 810 4

原创 Edgar-Mysql在mac下启动后自动关闭-那些怀疑人生的bug

所用时间:10小时左右bug复现,有几天没打开之前的项目了,启动以后卡在登录页面上不去。看了下前端的ajax请求出来了。后端没有报错,然后进去看前端网络,里面有个500的请求,认证看了下jdbc报错。直接上可视化工具Nactive,一看确实连不上了,看数据库关闭了,点了一次,然后直接习惯性关闭。后面还不能启动,一看他是自动关闭。这期间,换电脑的心情都有了,因为是m1各种猜想,也尝试过homebrew按装mysql,尝试过换虚拟机吧(这个工程量太大),找mysql日志,没有权限打不开,重启进入恢复模式

2021-01-27 00:19:55 828 2

原创 Edgar的后端学习--SSM后管系统基于模块的总结—权限模块

写在前面-整体介绍本次demo采用SSM整体架构,数据库使用的mysql,安全权限控制框架使用的是shiro(前后端),目标是电商的后管系统。包含,权限管理、用户管理、产品分类、商品管理、订单管理,五大模块。从今天开始开始复习本demo。从权限管理开始。如何从servlet项目到SSM的整体思维转移其实本质底层还是基于HTTP携带数据,进行相关的转发或者重定向,亦或是session或者cookie的处理。servlet本质是ssm的基础,代码更接近底层。如何对应呢?1.首先知道什么是SSM-Spr

2021-01-18 23:36:44 315 9

原创 当我们聊JavaWeb的时候,我们聊些什么

首先感谢一些并不认识的同学的关注,从0到1的突破,真的挺欣慰的,希望在以后的日子里一起进步。最近多少有些浮躁、焦虑,mac坏的几天里,手写了这份提纲,总结一下过去,掌展望下未来。都是基于自己的理解,可能有点偏差,而且分层分的也不是那么严谨,欢迎批评指正。本文结构目录文章目录不得不说的B/S架构、对应的数据流向模型老生常谈的MVC自己的理解对jsp项目中细节的反思从当下细节的展望发自内心感慨一下不得不说的B/S架构、对应的数据流向模型.学习后端,这个是必要的了解。现在主流的开发模式是基于浏览器做前

2020-11-24 18:13:02 170 1

原创 Edgar后端学习--复现一个热乎的json、ajax、重定向相关的bug以及引起的一些思考

躺了很长时间,起来也不想学习。好久也咩更新了,开了音响,开干!接上回jsp小项目,现在进程多是业务上的逻辑的设计。前端就是DOM元素的增加、修改,用一用模态框之类的。纯原生代码,注解还是热乎的(带着当时的感叹),没去总结。。下面主要是我近期项目的前端做法,触发函数,函数包一个ajax然后返回的result再去解析。这块先跳过,看完bug再回来看!!!!直接看复现bug标题解析变成前端的过程总结:1.首先你得有一个基础位置,比如说在一个既定好的table里面加动态显示表格,你就得先id找到他(具体是

2020-11-12 22:41:10 246

原创 Edgar后端学习--jsp电商后台项目小阶段总结(杂记开发日志)

9.23 重构service层 新建control层 service层已经不再直接和jsp交互这块我们开始引入control层–FC: 1.通过url的匹配,实现功能的分流 在里面再调用dao层–这块控制的都是后台系统-backSeverlet2.实现与前端jsp交互–将前端的分页请求的参数pageNum扔到service层处理数据3.service层处理好的数据再以分页实例化对象,传回给控制层,控制层,再绑定到requrest对象里面,传给前端(转发给前端)所以我们控制层和service层之间传的

2020-10-10 14:21:35 195 2

原创 Edgar后端学习-由最近的jsp想到的乱七八糟,假如bootstrap、cookie合并service层等

写在前面小yao昨天我们视频了下,他最近又回到javaSE上面的内存困惑了,但是他这个问题,我突然就觉得jsp这块没有相过这个方面的问题。感触最多的是初级的数据流、业务流和工程思维,包括对大学课程设置的吐槽。。。因为我自己有些点还没有动手写,所以写在下面做一个记录,后面自己再回头来看来补充。自渡自渡jsp阶段总结前后端交互一定要注意的点:input表单里面的name的属性一定要跟request存取对应上另外关于这块的前端你从bootstrap上拿下的代码,要主要他的前端自带的验证要去掉,比如说一

2020-09-15 11:34:51 188

原创 Edgar后端学习-jsp+servlet的crud的闲聊-servlet-3

写在前面1.刚跟小yao交流一下说这块还是很像以前的jdbc的,那一个部分的crud。所以我觉得可以对比来看看吧,都是小白理解------2第一这块开始结合了前后端的东西,通过最重要的http这种协议来实现前后端的交互,不再是控制台小白了,所以说这么一想我觉得这块最重要的就是理解一下http里面的转发和重定向,另外一些具体细节(比如说绝对路径啊,相对路径啊),出现的bug可以一起分享一下3.另外我觉得就是从技术的角度,理解一下业务的流程和细节。你如说你crud整完 ,高低应该给用户看一眼,再比如说,

2020-09-10 11:43:17 170

原创 Edgar后端学习-登录时实现账户和密码分别提醒的源码分享-servlet-2

dao层逻辑dao层–这层以前是把,账户和密码直接一起验证,返回布尔值。这次需求实现的是,账户不存在和密码错误分别提示。虽然有方便客户的一部分作用,但是说实话,从安全的角度来看,hacker可以通过测试知道账户是否存在。当然,后期你可以加入次数限制,让他不能通过暴力枚举来猜到账户名字。dao层的结构是初始化的时候,我在构造函数里面直接放了两条sql语句。然后拿了一个工具类里面的连接。下面是分别是账户和密码的分别验证的函数。然后验证逻辑是在service层实现的,但是验证密码正确性的时候,需要用户输

2020-09-10 09:01:55 165

原创 操作系统第四章---存储管理子系统

重点:分页、分段技术1.存储器层次结构(满足不同位置数据需求-速度快、不易失)你比如说直接跟cpu对接的 寄存器 cache 内存 外存(常理解为硬盘)他们读取的速度不一样、易失性也不一样。负责管理上面的结构的—存储管理器。—进程的换进换出和页面置换都是内存不足造成的。—2.单道程序存储管理把整个内存划分为系统区和用户区,用户区负责执行用户程序,系统区用于执行操作系统程序。大概有三种实现方式(上面的模型已经不再采用,现代操作系统一般都能同时运行多个进程。)3.固定分区的多道程序系统将

2020-08-12 22:30:02 1007

原创 操作系统第三章---IO子系统

总结:io子系统两大问题1.死锁的发生原理 死锁的检测 银行家算法 是否理解执行进程2.磁盘臂柱调度算法–先到先服务、最短作业优先、电梯算法、循环扫描算法其他问题 --IO四层结构问题另外,io设备主要分为两种,第一种块设备也就是我们常说硬盘、移动u盘等实体存储介质。另外一种,是字符设备就是从网络流等流中获取的IO数据。第一大问题死锁产生死锁的四个条件1.互斥使用:每个资源只能被一个进程使用(资源独占)2.保持和等待:不拿到资源就一直保持和等待3.不可剥夺:不剥夺正在使用资源的进程的资源

2020-08-12 22:22:55 633

原创 Edgar后端学习-servlet实现简单登录过程中的问题记载(附源码)

业务需求分析前端:实现一个form表单,表单中包含一个提交的文本框(用户名),一个密码框(密码),一个登录/提交按钮。后端:实现一个httpervlet类的继承的servlet类。这个类主要负责获取前端过来的数据,将前端数据提取出用户名、密码,然后用我们预先写在程序中的用户名和密码做比对,结果返回给前端登录成功或者失败。无数据库交互。核心文件此需求依赖于上篇文章介绍过的maven+web框架,所以核心文件有:1.Loginservlet.java2.web.xml3.Login.html详

2020-08-12 22:07:52 204

原创 Edgar后端学习-手把手搭建servlet的基础过程及问题记录(maven+idea)(8080端口一直被占用等)

相关结构的理解安装配置步骤原理的大概说明遇到的问题

2020-08-11 01:20:06 217

原创 Edgar--java学习--疯狂的线程的疯狂总结-javaSE的小告别

知识点比较多,比较杂。(写的很简单,多希望大佬来纠正啊!)先简单说下文章结构吧。1.线程的多种创建模式这是对应代码链接link2.线程相关的APIlink3守护线程问题link4.synchronize关键字引出的锁问题link5.join关和Interrupted键字link6闭锁和栅栏link7.volatile关键字link8.初探线程池linkjavaSE部分告一段落了,这里很多知识太值的去作总结,功利一点说,下一步准备将每片SE博文都对应上校招的知识点

2020-06-12 23:13:16 121

原创 Edgar-Demo8

package Thread;/* * 线程池的初探 * * 目的:1.不用反复创建或者销毁线程 * 使得线程资源被充分利用 * 同时一旦任务降临,直接调用线程池中的线程,执行速度也会加快 * 2.有效控制线程池的最大并发数,避免大量的线程直接印抢占资源而拥塞 * (线程多了,出现死锁的概率不也大了吗?) * 3.能够对线程进行简单的管理,并提供特定的操作 * 如:定期、定时、单线程、并发数量控制 * 初步记忆 * 基本结构---ne

2020-06-12 23:11:49 131

原创 Edgar-Demo7

package Thread;/* * volatile关键字---竞态条件的问题的引入--线程之间同步性问题 * * 用法 :位置经过测试 原则上只要加在类型之前就可以 习惯加在 static之后(因为这个修饰的是共享变量大概率是全局静态的) * 按理说 我们使用了static修饰以后全局可见,但是线程读入一次以后,不在主动看这个值(或者说其他线程修改了也没有告诉这个线程) * 一旦一个共享变量使用volatile修饰 这个变量就有了两层语义 * 修饰过的变量的特性 *

2020-06-12 23:10:40 117

原创 Edgar-Demo6

package Thread;import java.util.concurrent.CountDownLatch;/* * countDownLatch---闭锁--(计数减计时器)--不可复用 * (1.5以后开始并发包中提供,并发编程类) * 这个类能够使一个线程等待其他线程完成各自的工作后再执行 * (守护线程是等待其他线程结束(完成后)自己再结束) * Demo:五个检测线程执行完毕后再执行输出系统正常 * * 在其他线程上加锁,然后等到这些线程都执行完毕后,我

2020-06-12 23:09:41 117

原创 Edgar-Demo5

package Thread;/* * 2.join---(加塞动作) * t1.join(); * demo:取豆子事件 * 一共10个豆子,张三取完5个,李四再取五个 * (注意区别好与同步锁的区别,那是对于一个单位的资源,我们不能去抢占) * (而join保证的是线程按照我们既定的顺序执行) * join 保证线程串行执行 * 使用方法 * 如果设定 B在A后面执行的话 * a.join 这个join就是参加 加入 * 就是告诉b线程我a线程来插队了

2020-06-12 23:08:08 104 2

原创 Edgar--Demo4

package Thread;/* * 我们使用多线程方法时,会有机会出现某一时刻都是去访问同一颗豆子问题 * 引出线程同步问题 * 我们使用关键字 synchronized 对方法或代码块进行加锁 * 对代码块进行加锁 那一段线程就变成了互斥代码块 * 需要一个不变的对象进行传参--对象叫同步监视器 * 1.使用一个静态的对象 * 2.常用这个类的静态属性 类名.class * demo: * 我们不让西门庆和金莲同时出门和试衣间 * 进入商场我们用方法实现

2020-06-12 23:06:55 104

原创 Edgar---Demo3

package Thread;/*Java中的线程分为两类:一种是守护线程,一种是用户线程。 * 守护线程 *(首先主线程main和GC就是守护线程) * 前面线程都结束以后,守护线程就结束 * 用户线程又称前台线程 * 它们在几乎每个方面都是相同的,唯一的区别是判断JVM何时离开。 守护线程是用来服务用户线程的, 通过在start()方法前调用 thread.setDaemon(true)可以把一个用户线程变成一个守护线程。 Java垃圾回收就是一个典型的守护线程。

2020-06-12 23:05:12 119

原创 Edgar--Demo2

package Thread;/* 线程优先级问题 * 线程的相关操作的方法 * 线程相关信息的获取 */public class Demo2 { public static void main(String[] args) throws InterruptedException { //获取当前线程 //(主线程正在运行主方法) //1. System.out.println(Thread.currentThread()); //2.在线程中有另外两种(线程也是对象所以有

2020-06-12 23:02:26 123

原创 Edgar--Demo1

package Thread;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/* * 多线程 * 1.理解进程与线程关系 * 进程就是正在执行的程序,在内存中一块区域 * 线程组织起进程(一个进程可以有一个线程) * 2.线程的几种状态(os笔记有说) * * 3.单线程

2020-06-12 22:59:49 141

原创 Edgar--java学习--多线程聊天室的实现(v1.0)(和我一样的小白分享)

一二

2020-06-09 00:13:19 235

原创 Edgar-java学习--转换流和序列化相关问题

package 标准输入输出;一、标准输入输出流1.标准输入流 inputstream2.标准输出流 printStream二、转换流1.outputstreamwriter 将字节输出转换为字符输出流字节流的话操作的空间不大,但是识别的文件适用范围很大字符操作的话 换行之类的 输出一行之类的 主要是对中文有较好的识别三、对象操作流我们可以把对象存到文件里1.方便存储 传输速度快 安全1.1 序列化的对象的类要实现序列化接口1.2 序

2020-06-03 00:56:45 139

原创 Edgar--java学习--小说hashmap

package 集合map;import java.util.*;import java.util.Map.Entry;;/*map接口是除了collection的另一个接口主要区别是 map是双列存储 是一个对键值对 key与 valueList、Set、Map都可以通过迭代器来遍历先看 hashmap 1.无序 //没有索引 所以后期遍历的时候我们只能通过迭代器遍历//两种一种是 keyset 一种是 entryset 2.不可重复---因为key序列是se

2020-06-02 17:48:39 154

原创 Edgar--java中的delete小老弟的故事

前提java中file。delete 不支持直接对一个非空文件夹直接删除(这里能感受到java的对待数据安全的重视)需求 删除指定子目录实现思路 那就把文件夹下的所有文件先删除呗,再删除文件夹遇到问题 那么又涉及到了递归问题。。。也就是说子文件夹下的文件中可能还有文件夹。。疯狂递归模式。。。。话不多说上代码 中间只有一个地方当时调试了一下。就是清空完文件夹记得删除文件夹熬!!!!package Homework8;import java.io.File..

2020-05-29 22:38:03 287

原创 Edgar--一个搜索java文件的小小练习(小小总结一下2个月来的代码风格相关变化)

summary之前的代码没有发出来是因为,我发现怎么测试都没过。。。当时的代码偷偷看了一下。一个是感觉当时路子很野,但是知识很不扎实吧,但是不会写这个全局遍历,导致递归的时候,这个文件个数带不出来,然后我用来一个数组中的一位,当时不太理解引用数据类型就是很模糊的去做的。现在的话,自然而然就直接用全局静态遍变量。二是感觉当时的代码封装性很差,存在很冗余。这次的话,利用重载基本解决了冗余的问题。感觉确实是思路上了一个小台阶。三就是更加注意代码风格了(快捷键确实好用。。) /* * 功能:搜索相应文

2020-05-29 16:47:07 172

原创 Edgar的java学习日志-string的相关思考(校招面试准备)(比较全面)

1.先说字面量相加问题 java 预编译的问题先来看一个实例 输出结果 false 和 true原因和相关问题 因为string底层是用final修饰的 所以不可变如果用字面量想加的话 编译期间 会预编译成要生成的字面量 ab 也就是相当于 stsum3="ab"如果不是字面量相加 或者一个字面量和一个非字面量相加 java编译器不会预编译优化会产生一个新的对象 所以地址值不同 public static void main(String[] args) {// 1.java 字面量预编译

2020-05-27 00:20:49 99

原创 讲讲重写三兄弟 hashcode equals 和 tostring

package EqualsandSystem;三者之间是有关系的1.tostring 默认输出的是hashcode的值2.重写的时候 为什么equals要和hashcode绑在一起因为有可能要一起使用才能满足用hash实现的集合的添加(hashset等等)equals // 0x00先是修饰符 公有的方法 然后返回值得是一个布尔类型的吧,最后传参是所有类的父类适配于所有对象 public boolean equals(Object object) { // 0x01 先判断是不是自

2020-05-23 13:58:16 281 1

原创 Edgar-操作系统---第二章

进程模型进程:正在运行的应用程序 (同一时刻一个cpu只能执行一条指令)顺序进程—简称进程多道程序设计–各个程序之间快速切换可以实现我们现在认为的同时运行(或者多核cpu)/**********/程序和进程静态- 程序动态-进程 进程包括程序、数据、参数、状态进程创建(问题:所有进程的创建是不是都需要系统调用,都是产生一个中断,系统初始化的是不是不产生中断,就是刚刚开机的时候)进程创建的四大原因1.系统的初始化(系统自动开始进行系统调用)2.正在运行的进程执行了创建进程的系统调用(就

2020-05-18 23:25:29 546

原创 Edgar-操作系统笔记--第一章-无图片

什么是操作系统1.作为扩展机或者说是虚拟机它比底层硬件更容易编程,不用考虑底层,我们在底层之上抽象出另外一个底层与程序员对接就是os至于程序如何与操作系统对接,这涉及到后续的系统调用2.作为资源管理器(所有硬件资源我们管理并且指挥(分配)他们进行相应的动作)操作系统–扩展机和资源管理器两个功能的理解------模型—用户层||扩展机 资源管理器 || 各个硬件系统 操作系统的发展历史系统调用在操作系统中的位置操作系统—>扩展指

2020-05-18 00:06:05 279

原创 Edgar的java学习日志-Final与static的相关思考

java学习日志4fianl和static修饰字的相关思考时间:2020.5.8一.final修饰1.final修饰的变量常量:由final修饰的变量我们叫做常量。常量必须赋值一次,可以是在定义的时候直接赋值,也可以是在构造器中,后面无法被赋值或者修改接口中的成员属性都是常量对应代码理解//第一种```fianl int a;构造方法(){ a=10;}`````...

2020-05-08 10:11:13 131 1

空空如也

空空如也

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

TA关注的人

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