知识点
所为xy
这个作者很懒,什么都没留下…
展开
-
项目结构分层,各层的对异常的处理
开放 API 层:可直接封装 Service 接口暴露成 RPC 接口;通过 Web 封装成 http 接口;网关控制层等。终端显示层:各个端的模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染,JSP 渲染,移动端展示等。Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。Service 层:相对具体的业务逻辑服务层。Manager 层:通用业务处理层,它有如下特征:1) 对第三方平台封装的层,预处理返回结果及转化异常信息,适配上层接口。..原创 2020-12-04 16:43:40 · 628 阅读 · 1 评论 -
用户态与内核态
一、什么是用户态与内核态:为什么要有用户态和内核态?由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 – 用户态和内核态。内核态:cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取。也即,用户态与内核态是对CPU使用的权限划分。目的是防止普通程序错误或原创 2020-05-18 12:41:19 · 395 阅读 · 0 评论 -
对阻塞、非阻塞、同步、异步的理解
阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。你打电话问书店老板有没有《分布式系统》这本书,你如果是阻塞式调用,你会一直把自己“挂起”,直到得到这本书有没有的结果,如果是非阻塞式调用,你不管老板有没有告诉你,你自己先一边去玩了, 当然你也要偶尔过几分钟check一下老板有没有返回结果。在这里阻塞与非阻塞与是否同步异步无关。跟老板通过什么方式原创 2020-06-04 12:32:02 · 131 阅读 · 0 评论 -
常见开源协议区别
原创 2020-05-13 16:05:21 · 150 阅读 · 0 评论 -
后端向前端传递Long类型数据,导致数据不一致
1. 背景:后端商品实体的id字段为Long,从ES中查出封装,以Json的形式返回给前端。结果发现前端展示的的id全为 1244864296175140900。通过在后端打印查出的数据发现实际id有:1244864296175140890、1244864296175140889等等。把后端打印的Json串放进在线Json工具,发现id也会变为1244864296175140900。至此,排...原创 2020-04-07 13:13:43 · 6992 阅读 · 2 评论 -
MAVEN杂记
规范:包路径尽量符合:groupId.artifactId.目录(dao,service…)scope标签:默认值为:compile,表示该依赖对主代码和测试代码都有效。test:表示该依赖只可以用在测试目录下,在主代码目录下回变异报错传递性依赖和依赖范围:杂记:xxx.jar 与 original.xxx.jar区别在于,xxx.jar带有Main-Class信息的可运行...原创 2019-11-10 20:47:22 · 125 阅读 · 0 评论 -
IDEA 中使用git
1.设置terminal为git bash格式:—> settings —>tools —> terminal(选择本地下载git目录下的bash.exe)2.查看代码的提交者:双击选中某行代码,单击右键,选择git :show history :查看当前文件有哪些人改过show history for selection:查看当前行有哪些人改过3.可视化查看代码修改...原创 2019-11-10 16:47:11 · 170 阅读 · 0 评论 -
github使用
1.在github上进行有效的搜索:搜索关键字 in : readme:在readme中寻找这些关键字,大部分项目的描述都在readme中通知还可以添加一些过滤条件:starts > 1000...原创 2019-11-03 20:25:31 · 109 阅读 · 0 评论 -
GIT-----团队协作
1.当自己与他人产生冲突时:使用git merge --abort :百世不会接受别人的修改或者手动修改:打开冲突的文件:<<<<< commit hashcode自己修改的内容============别人修改的内容>>>>>>> commit hashcode其中=========表示分隔符,然后与同事商...原创 2019-11-03 16:19:24 · 80 阅读 · 0 评论 -
泛型
泛型是什么:泛型概念:泛型即“参数化类型”,它允许我们在定义类、接口、方法时使用类型形参来表示。在定义变量、产生对象或者调用方法时才真正传入具体的实参,运行时以传入的具体实参为准。引入泛型的原因:1.降低代码的冗余度:假如有一个函数,它可以求两个整数的最大值,也可求两个浮点数的的最大值。如果没有泛型,我们就需要重载产生两个函数。而有了泛型我们就可以将这个函数的形参设为一个类型形参,...原创 2020-02-14 11:56:26 · 123 阅读 · 0 评论 -
java的平台无关性
什么平台无关性:平台无关性指的是一种语言可以在不同的平台上运行,而不受不同平台的约束。做到一次编译,到处运行平台无关性的好处:因为平台无关性,所以java程序可以在任意平台上运行。对于java开发者来说可减少部署到不同平台的时间与成本。平台无关性的实现:1.JVM所谓平台无关性,就是要能够做到在不同的平台上无缝连接。但是不同的平台上的硬件设施与操作系统是不同的,这样会导致不同的平台上指...原创 2020-02-14 11:53:55 · 1303 阅读 · 0 评论 -
逃逸分析
逃逸分析:就是对对象的基本作用域进行分析。比如在一个方法中定义的对象可能被作为参数传给其他方法引用,或者赋值给类变量可以让其它线程访问到。这时就称发生了逃逸。***栈上分配对象:***如果确定对象的范围在一个方法中而不会被其他方法或其他线程访问到。此时就可以把对象分配到栈内容中,这时对象就会随着方法的执行而销毁掉。而不用gc进行垃圾回收。***同步消除:***如果确定一个变量不会逃逸出线程,...原创 2020-02-14 11:56:40 · 149 阅读 · 0 评论 -
怎样回答什么是面向对象
学习面向对象编程这么久,那么到底什么是面向对象呢?什么是面向对象:面向对象是计算机科学里的一种编程思想。它根据现实世界事物的特性,即现实中的事物具有其对应的属性与行为。在计算机中就将现实世界中事物的属性和行为抽象成一个类,这个类中描述就这一类对象的属性与行为,也就是我们所说的类的数据与方法。当我们在计算机中需要执行现实世界中某一对象事物要做的事情时,就可以实例化一个对象,通过对这个对象发布命令...原创 2019-07-24 09:00:25 · 242 阅读 · 0 评论 -
java中重载与重写的注意事项
一、重载:重载是指在同一个类中,方法名相同,参数列表不同的方法。注意,仅有这两个条件决定,与方法的返回值、访问权限、是否用static、final修饰没有关系。这里的参数列表不同指的是参数个数不同,或者个数相同但顺序或类型不同。二、重写首先重写指的是一个类重新实现它继承的父类或实现的接口中的方法。当重写时:1.子类的访问权限要等于或大于父类的访问权限。2.子类要重写的方法,其返回值、...原创 2020-02-14 11:56:07 · 242 阅读 · 0 评论 -
谈谈为什么要区分稳定排序与非稳定排序
**排序算法有稳定与不稳定的之分,稳定排序算法指的是值相等的元素保持排序前的相对顺序不变。*如:排序前:a1 a2 a3 a4 a53 1 5 3 4排序后:a2 a1 a4 a5 a31 3 3 4 5*目的:有两个排序关键字的时候,可以让第一个关键字的排序结果服务于第二个关键字排序中数值相等的那些数举个栗子:要对班上同学的身高进行排序,同学们已...原创 2019-03-21 15:12:08 · 455 阅读 · 0 评论