![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
作者\/
文章平均质量分 84
普通网友
这个作者很懒,什么都没留下…
展开
-
Java SpringMVC毕业项目实战-学生信息管理系统
(1001,‘刘老师’,‘女’,‘1990-03-08’,‘硕士’,‘副教授’,‘2015-09-02’,2),(1002,‘张老师’,‘女’,‘1996-09-02’,‘博士’,‘讲师’,‘2015-09-02’,1),(1003,‘软老师’,‘女’,‘1996-09-02’,‘硕士’,‘助教’,‘2017-07-07’,1);(3,‘数据结构’,1001,‘周四’,‘科401’,18,‘必修课’,1,2),(5,‘英语’,1002,‘周四’,‘X302’,18,‘必修课’,2,2),原创 2024-05-29 14:14:23 · 641 阅读 · 0 评论 -
Java Spring Boot中的爬虫防护机制_springboot防止爬虫
使用Thymeleaf生成动态内容。原创 2024-05-29 14:13:51 · 713 阅读 · 0 评论 -
Dubbo 第一章:详情版
我们知道ZooKeeper 可以作为 Dubbo 的注册中心,那Dubbo在Zookeeper服务器上注册服务信息后节点的层次结构是怎样的?但是为了让用户更好的管理监控众多的dubbo服务,官方提供了一个可视化的监控程序,不过这个监控即使不装也不影响使用。现在信息就比较明朗了,我就不作解释了,当然你们也可以自己测试consumer,我就不作测试了。解压到dubbo目录下unzip dubbo-admin-2.6.0.war -d dubbo。这里就可以监控你的服务了,当然这里还没有添加服务。原创 2024-05-29 12:37:15 · 823 阅读 · 0 评论 -
Dubbo 与 Spring Cloud 完美结合
对外部提供REST API服务是一件非常好的事情,但是如果内部调用也是使用HTTP调用方式,就会显得显得性能低下,Spring Cloud默认使用的Feign组件进行内部服务调用就是使用的HTTP协议进行调用,这时,我们如果内部服务使用RPC调用,对外使用REST API,将会是一个非常不错的选择,恰巧,Dubbo Spring Cloud给了我们这种选择的实现方式。本小结将会以一个简单的入门案例,介绍一下在使用Nacos作为服务中心,使用Dubbo来实现服务提供方和服务消费方的案例。原创 2024-05-29 12:36:44 · 958 阅读 · 0 评论 -
Android开发太难了:Java Lambda ≠ Android Lambda (上)
invokespecial 其实上面一段字节码上也出现了,一般指的是调用super方法,构造方法,private方法等;那有个很明显的问题,编译时你没给我生成,运行时生成了;运行时它怎么知道要不要生成,生成什么样的类,你编译产物就那一个class文件,里面肯定要包含这类信息的呀?这块大概解释是这样的,如果有困惑自己打字节码看就好了,例如抽象类抽象方法调用和接口方法调用指令一样吗?这里大家不要太在意jps,jstack这些指令,都是jdk自带的,你就知道能查堆栈就行了,别出去搜这两个命令去啦,文章看完再说。原创 2024-05-29 11:52:31 · 962 阅读 · 0 评论 -
Android应用开发用Kotlin还是Java 好?
搭建全新的项目框架,好处:可以采用全新项目架构理念,比如使用基于Jetpack中的架构组件搭建MVVM架构,可以学习并在项目中实践最新架构理念,并作出比较判断,利于个人成长,利于项目后面维护扩展。综上所述,关于新开Android项目,我的建议是使用以前成熟的项目框架(能主导Android客户端开发的人,肯定是项目经验丰富的,手上一定有成熟的现成框架)。关于在项目中使用到的第三方开源库,有人可能会想我们项目是以Kotlin语言为主的,同一个开源库若有Kotlin版本的,我就采用Kotlin版本的。原创 2024-05-29 11:52:01 · 602 阅读 · 0 评论 -
2024-3-11 【C结构体 、位域、共用体,typedef】
/使用了复合的位运算符"&=",相当于:pbit->b=pbit->b&3。//使用了复合的位运算符"|=",相当于:pbit->c=pbit->c|1。//共用体是一种特殊的数据类型,允许你在相同的内存位置存储不同的数据类型。//结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针。//一个位域存储在同一个字节中,如一个字节所剩空间不够存放另一个位域时。//由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度。//为了查找结构变量的地址,把&运算符放在结构名称的前面。原创 2024-05-29 11:02:01 · 343 阅读 · 0 评论 -
2024-12-7【Java基础】【运算符&分支结构】
/ 或者将结果强制转换为byte类型// 使用double接收,因为num1会自动提升为double类型。原创 2024-05-29 11:01:30 · 742 阅读 · 0 评论 -
细说SpringBoot的自动装配原理
在当前项目下运行或者直接运行main方法就可以启动一个使用了嵌入式tomcat服务请求的web应用,但是我们没有提供任何服务web请求的controller,所以访问任何路径都会返回一个springboot默认的错误页面(whitelabel error page)所以,我们可以创建一个Controller来实现请求访问就可以获得一个请求结果。这样就完成了一个非常简单的web应用。springboot是一个约定优于配置的产物,所以在快速构建web应用的背后,其实有很多的约定。原创 2024-05-28 21:47:42 · 755 阅读 · 0 评论 -
细思极恐,你真的会写java吗
其实答案是这样的,我从不相信任何调用我api或者方法的人,比如前端验证失败了,或者某些人通过一些特殊的渠道(比如Charles进行抓包),直接将数据传入到我的api,那我仍然进行正常的业务逻辑处理,那么就有可能产生脏数据!再回过头来看刚刚的Student,很多时候,我们去写Student这个bean的时候,他会有一些必输字段,比如Student中的name字段,一般处理的方式是将name字段包装成一个构造方法,只有传入name这样的构造方法,才能创建一个Student对象。原创 2024-05-28 21:47:11 · 784 阅读 · 0 评论 -
好奇,我们常用的 Integer 内部为什么会去实现 Comparable 接口,他的作用是什么?
它也实现了Comparable接口。里面实现了compareTo方法,所以按照某种规则能够进行排序。如果数组中的对象不是String而是自定义的类型呢?@Override结果为:可以看到不进行排序打印是正常的,但是排序时报错了。因为系统无法知道使用什么规则进行排序。我们存入字符串排序成功是因为String类已经实现Comparable接口,因此想要实现自定义对象比较同样需要实现该接口,其中的比较方法规则由我们自己设定。原创 2024-05-28 20:57:17 · 625 阅读 · 0 评论 -
太赞了!淘宝资深java技术专家爆肝整理分享入职阿里必备java面试资源java异步编程实战文档,相见恨晚!
*本章我们首先讲解了如何使用 FutureTask 实现异步编程及其缺点,然后讲解了Completabl Future 如何解决其缺点,以及 CompletableFuture JDK Stream 是如何完美结合的,可知使用 CompletableFuture 实现异步编程属于声明式编程, 般情况下不需要我们显式创建线程池并提交任务到线程池,这大大减轻了编程者的负担 另外本章多为实践类型,希望大家可以动手实践本章实例,以加深理解。**第2章显式使用线程和线程池实现异步编程;**第1章认识异步编程;原创 2024-05-28 20:56:46 · 229 阅读 · 0 评论 -
【项目demo】SpringBoot+Mybatis实现登录注册
Data // get/set 方法@AllArgsConstructor//有参构造器@NoArgsConstructor//无参构造器。原创 2024-05-28 20:05:10 · 1141 阅读 · 0 评论 -
【面试】记一次安恒面试及总结_安恒信息公司java面试
2、端口判断关系型数据库:Oracle数据库默认端口号为,1521;MySQL数据库默认端口号为,3306;SQLServer数据库默认端口号为,1433;postgreSQL数据库默认端口号为,5432;NOSQL数据库:MongoDB默认端口号为:27017;Redis默认端口号为:6379;memcached默认端口号为:11211;转载 2024-05-28 20:04:38 · 739 阅读 · 0 评论 -
Spring Cloud入门-Oauth2授权之基于JWT完成单点登录(Hoxton版本)
/ 配置redirect_uri,用于授权成功后的跳转。授权后会跳转到原来需要权限的接口地址,展示登录用户信息;// 配置redirect_uri,用于授权成功后的跳转。// 获取密钥需要身份认证,使用单点登录时必须配置。// 配置grant_type,表示授权类型。// 配置grant_type,表示授权类型。如果需要跳过授权操作进行自动授权可以添加。// 配置client_secret。// 配置client_secret。// 配置访问token的有效期。// 配置刷新token的有效期。原创 2024-05-28 18:06:23 · 499 阅读 · 0 评论 -
Spring Cloud入门-Oauth2授权之JWT集成(Hoxton版本)
Autowired@Autowired@Autowired@Autowired/***/@Override//配置令牌存储策略//省略代码…进行获取令牌操作,可以发现令牌已经被存储到Redis中。原创 2024-05-28 18:05:51 · 582 阅读 · 0 评论 -
Java高级研发:2021阿里天猫、中间件、蚂蚁金服JD要求+面题答案
3)深入了解spring,ibatis,cache,mq,rpc,jvm等领域的框架或产品的机制与代码;1. Java基础扎实,理解io、多线程、集合等基础框架,对JVM原理有一定的了解;8)熟悉SOA,有平台化实施经验者,有大数据量、高并发系统和大型网站构建经验者优先。31、什么是检查异常,不受检查异常,运行时异常?4. 对技术有浓厚兴趣,学习能力强,适应能力好,抗压能力强;38、在Java中,什么是栈的起始点,同时也是程序的起始点?6)有团队精神,良好的抗压能力,心态积极,能主动融入团队;原创 2024-05-28 17:19:34 · 474 阅读 · 0 评论 -
java高并发系列 - 第11天:线程中断的几种方式
线程内部有个中断标志,当调用线程的interrupt()实例方法之后,线程的中断标志会被置为true,可以通过线程的实例方法isInterrupted()获取线程的中断标志。关键字,exit变量必须通过这个修饰,如果把这个去掉,程序无法正常退出。volatile控制了变量在多线程中的可见性,关于volatile前面的文章中有介绍,此处就不再说了。代码中启动了一个线程,线程的run方法中有个死循环,内部通过exit变量的值来控制是否退出。//下面模拟阻塞代码。//下面模拟阻塞代码。原创 2024-05-28 17:19:02 · 821 阅读 · 0 评论 -
dubbo实战之四:管理控制台dubbo-admin
以上就是官方提供的体验版,算是让咱们对管理控制台有了基本了解,但这仅是用于体验的镜像,实际生产环境中,首先未必会用docker,并且可能需要有对应的源码以便学习和分析问题,甚至有可能用源码做进一步定制,因此这个docker版本就不适合了,接下来一起下载dubbo-admin源码自行编译构建;用上述命令启动的容器是一次性的,如果用Ctrl+C中断控制台,容器就会自动销毁,另外容器的8080端口被映射到了宿主机的8083端口;在启动docker容器的控制台执行Ctrl+C,刚才创建的容器就会自动销毁;原创 2024-05-28 16:34:34 · 988 阅读 · 0 评论 -
Docker系列(3)--容器连接和Dockerfile
8.参数说明:-h HOSTNAME 或者 --hostname=HOSTNAME: 设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts。–dns=IP_ADDRESS: 添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。原创 2024-05-28 16:34:04 · 877 阅读 · 0 评论 -
LeetCode 堆(优先级队列) 相关题目
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。注意是排序后的第 k 大元素,不是第 k 个不同的元素。使用map,key值为数组出现的数据,value值记录key出现的次数.使用优先级队列,构建一个大小为k的小根堆,比较的是value的大小.//map记录数据出现的次数 key是数据,value是次数。map添加的数据是有序的,所以直接遍历map,让数据入队.定义一个长度为k的数组,让key的值放入数组中即可.当堆的大小 > k的时候,要弹出队顶元素,原创 2024-05-26 21:55:49 · 320 阅读 · 0 评论 -
JavaCV的摄像头实战之七:推流(带声音)
**@description 音频相关的服务*/@Slf4j// 采样率// 音频通道数,2表示立体声// 帧录制器// 定时器// 目标数据线,音频数据从这里获取// 该数组用于保存从数据线中取得的音频数据// 定时任务的线程中会读此变量,而改变此变量的值是在主线程中,因此要用volatile保持可见性/**帧录制器的音频参数设置*/// 码率恒定// 最高音质// 采样率// 立体声// 编码器/**音频采样对象的初始化*/原创 2024-05-26 20:16:45 · 289 阅读 · 0 评论 -
2024最新拼多多Java面试题(现场五面),全面涵盖Java高级到高并发
Compare and Swap两步***作,为什么能保证原子性(涉及到CPU指令)?平时自己是怎么学习技术的,除了Java相关,还会去了解其他什么技术?网络编程nio和netty相关,netty的线程模型,零拷贝实现?Redis的分布式集群怎么做?你之前工作的项目里个人最满意的,谈谈你的架构设计思路?分布式锁的实现知道到哪些?分布式的cap了解么,分别指什么?谈谈高并发场景下削峰,限流的实现?谈谈你的SOA以及微服务的理解?Redis的持久化操作有哪些?未来2年是怎样打算的?拼多多Java 四面。原创 2024-05-26 17:31:55 · 265 阅读 · 0 评论 -
Java程序设计(基础)- 字符串
compareTo()方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将此String对象表示的字符序列与参数字符串所表示的字符序列进行比较。字符串的toLowerCase()方法可将字符串中的所有字符从大写字母改写为小写字母,而tuUpperCase()方法可将字符串中的小写字母改写为大写字母。如果lastIndexOf方法中的参数是空字符串"" ,,则返回的结果与length方法的返回结果相同。该方法返回的是从指定的索引位置开始截取知道该字符串结尾的子串。原创 2024-05-25 20:35:53 · 352 阅读 · 0 评论 -
Java程序员:面试字节跳动被问算法 多亏我扛下来了
一个出色的程序员不一定要精通算法,但如果连基本的算法都掌握不了,他肯定成不了优秀的程序员。有个程序员小哥哥说:搬砖 + 算法 = 稳定快速的搬砖,真相了,高质量的代码,才能让项目运行如飞!其实不管怎么说,算法仍然是最适合企业筛选程序员的面试方式之一,在字节跳动、华为等公司带动下,无论是求职者还是面试官,都逐渐认识到算法面试其实是相对高效、准确且公平的筛选机制。字节跳动的面试是出了名的爱问算法,今天我们就和各路大神一起“日穿”字节面试官,享受支配算法带来的乐趣!回溯算法团灭子集、排列、组合问题。原创 2024-05-25 20:35:23 · 416 阅读 · 0 评论 -
Java GUI 图书管理系统
图书查询:输入图书名称、作者、出版时间中的任意一项,点击“查询”按钮查询图书。读者查询:输入读者姓名、读者类型中的任意一项,点击“查询”按钮查询读者。原创 2024-05-25 18:11:22 · 399 阅读 · 0 评论 -
JAVA Gson的使用
map转JSON—{“name”:“merry”,“age”:“17岁”,“height”:“62Kg”,“sex”:“女”}对象转JSON—{“name”:“joke”,“age”:“16岁”,“height”:“60Kg”,“sex”:“男”}// System.out.println(“mapJSON转list—”+retList1);System.out.println(“JSON转对象—”+userTestNew.toString());map.put(“age”,“17岁”);原创 2024-05-25 18:10:52 · 370 阅读 · 0 评论 -
7种JVM垃圾收集器特点,优劣势、及使用场景——JVM系列(六)
如下是 Parallel 收集器和 Parallel Old 收集器结合进行垃圾收集的示意图,在新生代,当用户线程都执行到安全点时,所有线程暂停执行,ParNew 收集器以多线程,采用复制算法进行垃圾收集工作,收集完之后,用户线程继续开始执行;**适用场景:**多核服务器;如下是 ParNew 收集器和 Serial Old 收集器结合进行垃圾收集的示意图,当用户线程都执行到安全点时,所有线程暂停执行,ParNew 收集器以多线程,采用复制算法进行垃圾收集工作,收集完之后,用户线程继续开始执行。原创 2024-05-25 14:56:35 · 321 阅读 · 0 评论 -
7张图揭晓RocketMQ存储设计的精髓
以 MySQL InnoDB 中一个库存在上千张,每一个张的数据会使用单独的文件存储,如果每一个表的数据发生变更,就刷写到磁盘,就会存在大量的随机写入,性能无法得到提升,故引入一个 redo 文件,顺序写 redo 文件,从表面上多了一步刷盘操作,但由于是顺序写,相比随机写,带来的性能提升是非常显著的。有了顺序写和内存映射的加持,RocketMQ 的写入性能得到了极大的保证,但凡事都有利弊,引入了内存映射和页缓存机制,消息会先写入到页缓存,此时消息并没有真正持久化到磁盘。原创 2024-05-25 14:56:04 · 255 阅读 · 0 评论 -
2024-12-19【Java程序设计教程】【第三章习题】
(4)当Java程序运行时,系统根据调用该方法的对象,来决定实际调用的是子类还是父类的方法。对于子类的一个对象,如果该子类重写了父类的方法,则运行时系统调用子类的方法;如果子类继承了父类的方法(未重写),则运行时系统调用父类的方法。在一个类中不允许定义两个方法名相同,并且参数签名也完全相同的方法。,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖,因为修饰符为private的方法,子类不能从父类继承,所以覆盖也不存在了。最终方法:用来完成标准功能的方法,表示该方法无法在子类中被覆盖。原创 2024-05-25 13:52:45 · 333 阅读 · 0 评论 -
2024-12-19【Java程序设计教程】【第一章习题】
(2)Java程序的最终实现需要经过编译和解释两个步骤,Java语言的编译器生成的可执行代码称为字节码,该字节码可以提供Java虚拟机(JVM)的任何一个系统上解释运行,它与任何硬件平台无关。任何一台计算机只要安装了JVM,就可以运行这个程序,而不管这种字节码是在什么平台上生成的。(1)Java语言规定同一种数据类型在各种不同的实现中,必须占用相同的内存空间,由于Java语言在数据类型的空间大小方面采用了统一的标准,因此保证了其程序的平台独立性。的设置为了能够在命令行下找到Java编译与运行所用的程序;原创 2024-05-25 13:52:14 · 244 阅读 · 0 评论