java开始
文章平均质量分 56
我能走到对岸吗
星辰和大海
展开
-
lambda-1.8
1 统计金额汇总ArrayList bigDecimals = Lists.newArrayList(new BigDecimal(“21”),new BigDecimal(“22”));BigDecimal reduce = bigDecimals.stream().reduce(BigDecimal.ZERO,BigDecimal::add);原创 2021-11-05 18:20:15 · 174 阅读 · 0 评论 -
mysql冷门
1 SELECT@@tx_isolation; 查看mysql的默认隔离级别;2 select * from user where username=“silly” or ‘1’=‘1’ 注入攻击;1 insert ignore当出现主键或唯一索引重复之后,插入会失败,但不会报错,会忽略此次插入用法:#id为主键insert into user(id,name,age)values(1,"小华",21)#由于主键冲突,这个插入将会被忽略insert ignore into user(id,原创 2021-10-10 19:35:24 · 126 阅读 · 0 评论 -
mysql-lock笔记
1 并发下,锁表不好2 数据的备份,恢复不希望变动,加锁,双刃剑3 协调多个进程的一种机制,下单,抢购,加锁,对资源进行保护4 锁的分类:读和写,表和行锁,5 读是共享的不会相互影响的,屏幕共享,写是排他的,唯我独尊;6 表锁:开销小,加锁快7 show open tables:查看是否加锁;8 lock table a read,b write;9 unlock tables;10 lock table a read;读锁是共享的11 加了读锁是不可以修改的,自己也不可以修改12 自原创 2021-10-10 19:34:28 · 80 阅读 · 0 评论 -
JUC
1 多线程的开销大,涉及很多的问题,JUC的concurrent并发包,加锁的性能很高,2 volatile:内存可见性,多个线程操作共享数据的时候,内存不可见,及时的刷新缓存,修饰后不能重排序,3 i++:分为读改写,...原创 2021-10-05 16:45:03 · 103 阅读 · 0 评论 -
线程安全
1 什么是线程安全?“线程安全”也不是指线程的安全,而是指内存的安全。为什么如此说呢?这和操作系统有关。目前主流操作系统都是多任务的,即多个进程同时运行。为了保证安全,每个进程只能访问分配给自己的内存空间,而不能访问别的进程的,这是由操作系统保障的。在每个进程的内存空间中都会有一块特殊的公共区域,通常称为堆(内存)。进程内的所有线程都可以访问到该区域,这就是造成问题的潜在原因。假设某个线程把数据处理到一半,觉得很累,就去休息了一会,回来准备接着处理,却发现数据已经被修改了,不是自己离开时的样子了。可能被其它原创 2021-10-05 16:44:16 · 91 阅读 · 0 评论 -
java中的语法糖
1 糖块二、 泛型2 糖块一、 switch 支持 String 与枚举3 糖块三、 自动装箱与拆箱4 糖块四 、 方法变长参数5 糖块五 、 枚举6 糖块六 、 内部类7 糖块七 、条件编译8 糖块八 、 断言9 糖块九 、 数值字面量在java 7中,数值字面量,不管是整数还是浮点数,都允许在数字之间插入任意多个下划线。这些下划线不会对字面量的数值产生影响,目的就是方便阅读。public class Test {public static void main(String… arg原创 2021-10-03 22:55:26 · 124 阅读 · 0 评论 -
微服务架构概念笔记
1 一堆技术的集合,最常见和最高频的2 电商,直播,o2o都是分布式的架构,单机部署已经过时;3 艺多不压身,用进废退;4 面试:第一:项目遇到的坑?cloud和boot面试的标配;5 微服务概述:架构风格,提倡单一的应用程序划分一组小的服务;6 分布式:订单,积分,注册…全部分开,根据业务拆分,可以独立的数据库,专业的事情专业的人做,专一,防止传染,划分模块,相互拆分,通过接口交互,划分小的服务,每一服务单一的进程,–每个服务互相独立,降低耦合,合成微小的进程,独立的部署,在容器里面,小单间;互原创 2021-10-03 22:52:38 · 111 阅读 · 0 评论 -
算法中的各种O
1 不仅仅用于表示时间复杂度,也用于表示空间复杂度。O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。如下O后面的括号中有一个函数,指明某个算法的耗时与数据增长量之间的关系。其中的n代表输入数据的量。这里的log是以2为底的1 O(1)就是最低的时空复杂度了,也就是耗时/耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间都不变。 哈希算法就是典型的O(1)时间复杂度,无论数据规模多大,都可以在一次计算后找到目标(不考虑冲突的话),冲突的原创 2021-10-03 22:51:11 · 397 阅读 · 0 评论 -
前后段接口联调
1 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。2 前端还可以自己根据api mock自己的数据,3 需要由前后端工程师共同定义接口,编写接口原创 2021-10-02 15:22:44 · 370 阅读 · 0 评论 -
上硅谷mysql笔记基础视频03笔记
原则1 所选择的类型越简单越好,能保存数字的类型越小越好;2 较短的文本: char varchar(M)M:最多的字符数char:固定的长度;varchar:可变的长度;har:性能高:固定使用varchar:变化比较大;节省空间;binary:保存二进制;enum:枚举类型;日期类型date:保存日期没有时间datetime:和date相反;8字节;timestamp:时间戳;市区有影响;约束1一种限制,为了保证表中数据的准确和可靠性;2 防止重复;六大约束not原创 2021-09-21 15:13:31 · 80 阅读 · 0 评论 -
项目中的mysql问题
1 UNIQUE KEY loginname (loginname)什么鬼??2 tinyint和布尔?MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1),2 MySQL里有四个常量:true,false,TRUE,FALSE,它们分别代表1,0,1,0,3 true就是1,“true”放入map网数据库进行插入4 没有配置包的别名,要权限定类名...原创 2021-09-21 15:02:33 · 61 阅读 · 0 评论 -
2021--redis面试
1 什么是缓存雪崩?–首先缓存作用:第一:缓存查询速度比查询数据库快;第二:分担了部分请求,支持更高的并发;雪崩:原因一:Redis挂掉了,请求全部走数据库。二:对缓存数据设置相同的过期时间,导致某段时间内缓存失效,请求全部走数据库。危害:缓存雪崩如果发生了,很可能就把我们的数据库搞垮,导致整个服务瘫痪!2 雪崩的结局方案:一:在缓存的时候给过期时间加上一个随机值,这样就会大幅度的减少缓存在同一时间过期。其他:对于“Redis挂掉了,请求全部走数据库”这种情况,我们可以有以下的思路:事发前:实现R原创 2021-09-21 14:56:02 · 81 阅读 · 0 评论 -
2019-linux笔记
1 ls -a显示隐藏的文件,-L列出文件的详细信息,2 mv a /emp/移动文件到这个目录的下面,mv a b将a命名为b,3 rm [选项] 文件 | 删除文件-r 删除文件夹-f 删除不提示-i 删除提示-v 详细显示进行步骤4 touch [选项] 文件 | 创建空文件或更新文件时间5 cd 改变当前目录:返回上次目录… :返回上层目录回车 :返回主目录/ :根目录**6 pwd查看当前的路径7 9.mkdir [选项] 目录… | 创建新目录-p原创 2021-09-21 14:51:33 · 55 阅读 · 0 评论 -
linux好处和安装jdk
1.获取java相关版本:yum -y list java*2.下载需要的jdk:yum install java-1.8.0-openjdk.x86_64linux优点1 window安装软件需要重启!linux不用,原创 2021-09-21 14:50:29 · 132 阅读 · 0 评论 -
activeMQ
1 jms:两个应用(消息服务应用接口!),分布系统通信,仅仅是接口,类似webservice调用,很多的实现厂商,2 消息服务:两个应用之间通信,比如注册用户和发送短信,3 之前while(true){}进行状态的监听,每隔一段时间,现在是mq通知,后者更好!!!4 被动的消息接受,也可以主动!5 消息生产者1 只是一个接口,没有实现,2 activeMQ/rabbitMQ类似,apache出品的,实现了jms接口,通知放到队列里面,activeMQ自动的发送到第二个应用,通过中介,A角色叫做原创 2021-09-21 14:48:37 · 93 阅读 · 0 评论 -
微服务架构--笔记
1 一堆技术的集合,最常见和最高频的2 电商,直播,o2o都是分布式的架构,单机部署已经过时;3 艺多不压身,用进废退;4 面试:第一:项目遇到的坑?cloud和boot面试的标配;5 微服务概述:架构风格,提倡单一的应用程序划分一组小的服务;6 分布式:订单,积分,注册…全部分开,根据业务拆分,可以独立的数据库,专业的事情专业的人做,专一,防止传染,划分模块,相互拆分,通过接口交互,划分小的服务,每一服务单一的进程,–每个服务互相独立,降低耦合,合成微小的进程,独立的部署,在容器里面,小单间;互原创 2021-09-21 14:42:07 · 138 阅读 · 0 评论 -
mybatisplus--学习笔记
1 简化开发工作,只做增加不做变化,是一个增强的工具包2 开发者baomidou,和mybatis配合3 get started:快速的开始4 不用写crud的方法了,基础baseMapper;baseMapper接口:无需编写mapper.xml,sql自动的编写好了5 底层是大量的泛型:传入实体,6 mismatch:不匹配,需要制定组件策略,四中组件策略,自增的…7 @TableId(value=“id”)如果数据库和实体类i的字段一样的化可以省略的,8 mybatis-plus默认用一原创 2021-09-21 14:41:21 · 95 阅读 · 0 评论 -
核心知识之一--面试总结
1 方法上锁,就变成单线程啦,所有的请求都会排队,不建议方法上锁;–双重同步锁可取;–因为第一次是咧话之后,后面的请求都不会进入同步代码快啦,效率提升!2 resouurces就是classpath;配置就好啦;3 /只能匹配/a/b不能匹配/a/b/c.jsp,然而/星就可以啦;都可以处理,包含后缀型的,4 spring里面的/和/星的区别???5 建表的时候自动,默认值可以填写now()数据库表设计的规范1 每隔表都应该有自己的主键2 字段尽量定义为非空,not null,因为非空的话,需原创 2021-09-21 14:33:10 · 79 阅读 · 0 评论 -
常用java类
常用java类库1.Runtime类jvm虚拟机注册一个勾子,当虚拟机要关闭时,会执行预先注册的线程任务。Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { try { logger.info("## stop the canal client"); clientTes原创 2021-09-21 14:26:50 · 81 阅读 · 0 评论 -
spring事务失效的八种情况
事务失效的原因1 引擎选错,mysalm引擎不支持事务2 没有被 Spring 管理 : 如下面例子所示:// @Servicepublic class OrderServiceImpl implements OrderService {@Transactionalpublic void updateOrder(Order order) {// update order}}如果此时把 @Service 注解注释掉,这个类就不会被加载成一个 Bean,那这个类就不会被 Spring 管原创 2021-09-05 14:13:28 · 426 阅读 · 0 评论 -
线程安全
1 什么是线程安全?“线程安全”也不是指线程的安全,而是指内存的安全。为什么如此说呢?这和操作系统有关。目前主流操作系统都是多任务的,即多个进程同时运行。为了保证安全,每个进程只能访问分配给自己的内存空间,而不能访问别的进程的,这是由操作系统保障的。在每个进程的内存空间中都会有一块特殊的公共区域,通常称为堆(内存)。进程内的所有线程都可以访问到该区域,这就是造成问题的潜在原因。假设某个线程把数据处理到一半,觉得很累,就去休息了一会,回来准备接着处理,却发现数据已经被修改了,不是自己离开时的样子了。可能被其它原创 2021-09-05 14:04:05 · 80 阅读 · 0 评论 -
如何有效的谈薪资
1 打听工资的范围,心里有数,2 了解同等公司范围的薪资,猎头,熟人,打听公司的缺人的紧急程度,职位的紧急程度,如果紧急可以狮子大开口!!!3 了解他们是否紧急?是否关注你的入职世间,如果多次问你时间,就是紧急4 亮出自己的另一个offer大杀招!另一个offer对少那个!水涨船高,见到更多的offer...原创 2021-09-05 13:46:09 · 129 阅读 · 0 评论 -
学习的方法
1 其实工作本质上就是解决问题,而 Google 本质上就是帮你解决问题,实际工作中 90% 的问题都可以通过 Google 解决,所以一定要会使用 Google,而使用 Google 需要你满足以下条件:1、要会科学上网;2、要用英文关键字进行搜索;3、搜到的结果中有 Stack Overflow 优先查看;而 GitHub 则主要在于搜索一些常用的第三方开源库,来帮助你快速开发,不用重复造轮子。除此之外,更是新手学习的最好资料。这上面有各种全球大牛写的开源项目,难度有深有浅,你的代码写的很烂,原创 2021-09-05 11:53:02 · 55 阅读 · 0 评论 -
软件测试
1 软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能,不是为了评估软件或改正错误。2 软件测试发现了错误,然后就改呗,保证良好的用户体验就行了3 测试人员要坚持原则,缺陷未修复完坚决不予通过。请判断这句话的正确与否。???1、完全影响软件的正常运行或者影响客户的正常体验。这种当然不能予以通过2、不影响产品运行及客户正常体验且此软件急于使用以公司利益为出发,应予以通过。但在时间不紧急的情况下应不予通过。一个好的测试人员应该有很好的情况分析能力,并且要有担当原创 2021-09-05 11:48:24 · 3803 阅读 · 0 评论 -
javaee中的一些坑
1 多态:私有的方法子类无法继承,不存在覆盖的问题;2 静态方法无法被覆盖,无法实现多态原创 2021-09-05 11:47:31 · 47 阅读 · 0 评论 -
牛客网中的构造函数笔记大全
构造器的名字必须和类名相同,而匿名内部类没有类名,所有不可以有构造器1 构造方法不能用对象调用;A:构造方法概述和作用,给对象的数据(属性)进行初始化 B:构造方法格式特点a:方法名与类名相同(大小也要与类名一致)b:没有返回值类型,连void都没有c:没有具体的返回值return;-----重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表,系统默认创造一个无参数的,我们创建系统就不提供了!1 可以重载,和类名相同,this()才是调用构造函数的第一条语句,this是不需要的,原创 2021-09-05 11:46:37 · 69 阅读 · 0 评论 -
jackson常用注解
1 Json解析工具Jackson的注解@JsonIgnoreProperties此注解是类注解,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。@JsonIgnore此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。@JsonFormat此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = “yyyy-MM-dd H原创 2021-08-29 13:40:51 · 371 阅读 · 0 评论 -
java序列化
1 Java序列化对于一个存在Java虚拟机中的对象来说,其内部的状态只是保存在内存中。JVM退出之后,内存资源也就被释放,Java对象的内部状态也就丢失了。而在很多情况下,对象内部状态是需要被持久化的,将运行中的对象状态保存下来(最直接的方式就是保存到文件系统中),在需要的时候可以还原,即使是在Java虚拟机退出的情况下。对象序列化机制是Java内建的一种对象持久化方式,可以很容易实现在JVM中的活动对象与字节数组(流)之间进行转换,使用得Java对象可以被存储,可以被网络传输,在网络的一端将对象序原创 2021-08-29 13:40:21 · 253 阅读 · 1 评论 -
java底层
一、底层nativecasconcurrentnative1 Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JVM还是开了一个后门,JDK中有一个类Unsafe,它提供了硬件级别的原子操作。cas2 CAS,Compare and Swap即比较并交换,设计并发算法时常用到的一种技术,java.util.concurrent包全完建立在CAS之上,没有CAS也就没有此包,可见CAS的重要性。当前的处理器基本都支持CAS,只不过不同的厂.原创 2021-08-29 13:39:08 · 384 阅读 · 0 评论 -
牛课网种的jvm笔记
1 jvm1 JVM也就是Java Virtual Machine,即java虚拟机,是在现有的平台上,如Windows,Linux等,运行一个软件,虚拟出一台接口统一的计算机,依次实现java语言的跨平台特性。2 写好的java文件后缀名为xxx.java编译java文件:输入javac xxx.java回车,编译会生成.class文件运行java文件:java xxx.class3 内存回收:JVM一旦启动,就会创建一个守护线程来监测是否需要有对象内存被释放。C、无法直接释放。D、不可以指原创 2021-08-29 13:36:58 · 117 阅读 · 0 评论 -
io和nio
1、IO是面向流的,NIO是面向缓冲区的。2、IO是阻塞的,NIO是非阻塞的。3、NIO有选择器机制,可以让一个线程来监视多个IO通道。NIO的优点:1、不需要使用 read() 或者 write() 就可以处理文件内容。2、NIO的处理效率很快。...原创 2021-08-29 13:34:40 · 130 阅读 · 0 评论 -
java file
1 A.文件分为文本文件和二进制文件,计算机只认识二进制,所以实际上都是二进制的不同解释方式。文本文件是以不同编码格式显示的字符,例如Ascii、Unicode等,window中文本文件的后缀名有".txt",".log",各种编程语言的源码文件等;二进制文件就是用文本文档打开是看不懂乱码,只要能用文本打开的文件都可以算是文本文件,只是显示的结果不是你想要的,二进制文件只有用特殊的应用才能读懂的文件,例如".png",".bmp"等,计算机中大部分的文件还是二进制文件。B.File类是对文件整体或者文件属原创 2021-08-29 13:34:08 · 99 阅读 · 0 评论 -
gc回收
1 gc?2 内存模型?3 负载均衡原理和集群同步回话状态?4 sql如何优化的?5 项目的拼镜可能会是?6 springmv的工作流程?7 rm -i和rm -r的区别?8 String str = new String(“hello”);1 上面的语句中str放在栈上,用new创建出来的字符串对象放在堆上,而“hello”这个字面量放在静态存储区。–通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间2 程序中的字面量(litera原创 2021-08-29 13:33:02 · 78 阅读 · 0 评论 -
jvm内存结构
jvm内存结构a)程序计数器(program counter register),一块较小的内存空间,可以看作当前线程所执行的字节码的行号指示器。由于java虚拟机是采用多线程,通过线程切换获得时间片得到cpu的控制权。为了线程切换后能恢复到正确的执行位置。b)虚拟机栈,调用一个方法时会创建一个栈帧,用于存储局部变量、对象引用、方法返回值,每一个方法从调用到执行完成,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。通过 -Xss控制大小,如果线程请求的栈深度大于虚拟机所允许的深度,会抛出StatckOve原创 2021-08-29 13:32:29 · 86 阅读 · 0 评论 -
泛型笔记--面试
question1:请你聊聊泛型,你是怎么看的?answer:A:在没有泛型之前,一旦吧一个对象“丢进”java集合中,集合就会忘记对象的类型,把所有的对象都当成是Object类型处理。当程序从集合中取出对象之后,就要进行强制类型转换,这种强制类型转换不仅代码臃肿还容易引起ClassCastException异常。B:Java引用了“参数化类型(parameterized type)”的概念,允许我们在创建集合是指定集合元素的类型。如List,这表明该List只能保存字符串类型的对象。Java的参数化原创 2021-08-28 23:06:40 · 155 阅读 · 0 评论 -
线程笔记
1.什么是线程,什么是进程,它们有什么区别和联系,一个进程里面是否必须有个线程(先讲进程)进程本质上是一个执行的程序,一个进程可以有多个线程。它允许计算机同时运行两个或多个程序。一个进程至少会有一个线程。线程是进程的最小执行单位。区别:多进程程序不受Java的控制,而多线程则受Java控制。多线程比多进程需要更少的管理费用。2.实现一个线程有哪几种方式,各有什么优缺点,比较常用的是那种,为什么线程有4种实现方式:①.通过继承Thread类,优点:可以直接调用start方法启动。缺点:继承一个类后原创 2021-08-28 23:05:40 · 375 阅读 · 0 评论 -
java this
1 Java中this关键字使用小结:当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。2、使用this来区分当前对象Java中为解决变量的命名冲突和不确定性问题,引入关键字this代表其所在方法的当前对象的引用:*1)* 构造方法中指该构造器所创建的新对象;*2)*原创 2021-08-28 23:04:38 · 301 阅读 · 0 评论 -
java 集合
csdn1.ArrayList和LinkList的区别ArrayList(数组结构):优点:get和set调用花费常数时间,也就是查询的速度快;缺点:新项的插入和现有项的删除代价昂贵,也就是添加删除的速度慢LinkedList(链表结构):优点:新项的插入和和现有项的删除开销很小,即添加和删除的速度快缺点:对get和set的调用花费昂贵,不适合做查询2.Collection接口的remove()方法和Iterator接口的remove()方法区别?①性能方面Collection的remo原创 2021-08-28 23:04:09 · 264 阅读 · 0 评论 -
java 异常
1 Java中什么是Exception?这个问题经常在第一次问有关异常的时候或者是面试菜鸟的时候问。我从来没见过面高级或者资深工程师的时候有人问这玩意,但是对于菜鸟,是很愿意问这个的。简单来说,异常是Java传达给你的系统和程序错误的方式。在java中,异常功能是通过实现比如Throwable,Exception,RuntimeException之类的类,然后还有一些处理异常时候的关键字,比如throw,throws,try,catch,finally之类的。 所有的异常都是通过Throwable原创 2021-08-28 23:03:33 · 216 阅读 · 0 评论 -
包装类笔记
01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的。而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等 *b.八种基本类型对应的包装类 char Character int Integer byte Byte s原创 2021-08-28 23:02:54 · 82 阅读 · 0 评论