Java / Kotlin 二三事
文章平均质量分 70
分享 Java Kotlin 相关内容
小工具代码
这个作者很懒,什么都没留下…
展开
-
Java每日一题 2
大家好,我是青空。快来看看今天的每日一题练习吧。题目给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。解法跟其他许多问题一样,首先我们应该向面试官确认一些细节,弄清楚变位词比较是否区分大小写。比如,God是否为dog的变位词? 此外,我们还应该问清楚是否要考虑空白字符。这里假定变位词比较区分大小写,空白也要考虑在内。也就是说,“god ”不是“dog”的 变位词。比较两个字符串时,只要两者长度不同,就不可能是变位词。解决这个问题有两个简单的解决方法,并且原创 2021-09-06 23:03:08 · 69 阅读 · 0 评论 -
1000道Java面经第5套附答案
大家好,我是青空。最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,能不能做一些分享,和做一些面试题解析的系列文章。青空收到消息之后,觉得这个建议挺不错的。那我就计划简单及概念性的面试题就多个面试题汇总成一片文章,比较复杂的面试题就单独拎出来讲讲。文末领取面试大全1.Java中实现多态的机制是什么?Java中的多态靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是原创 2021-09-10 09:55:52 · 137 阅读 · 0 评论 -
Java 每日一题 4 附答案
大家好,我是青空。快来和青空看看今天的Java每日一题吧题目利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符 串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。解法预警不建议直接看下面答案,可以自己先思考一下怎么处理再看大看比较合适解法public static int countCompression(String str) { if (str == null || str.isEmpty()) return原创 2021-09-09 09:20:12 · 116 阅读 · 0 评论 -
B站有哪些好的Java视频教程,看这篇就够了!
大家好,我是青空。这段时间在知乎上答题,经常看到很多新手都在求推荐Java相关的学习视频。看久了之后,我就想把几个回答下的所有的视频都收集到一起,整理到一下,还发现了很多视频链接都已经失效了。该视频资源思维导图涵盖了Java基础、并发、设计模式、源码解析、数据结构与算法、Spring Boot 、Spring、Spring MVC、Spring Cloud、分布式框架、项目实战、计算机原理、编译原理、数据库、运维、Linux等,基本上Java开发者能用上的都有了。持续更新中……Java学习视频资源总结持续更原创 2021-09-06 08:10:26 · 14731 阅读 · 2 评论 -
Java 每日一题 3 附答案
Java 每日一题 3 附答案大家好,我是青空。快来和青空看看今天的Java每日一题吧题目编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。解法预警不建议直接看下面答案,可以自己先思考一下怎么处理再看大看比较合适解法处理字符串操作问题时,常见做法是从字符串尾部开始编辑,从后往前反向操作。这种做法很有用,因为字符串尾部有额外的缓冲,可以直接修改,不必担心会覆写原有数据。我们将采用上面这种做法。该算法会进行两次扫描。原创 2021-09-08 10:09:41 · 82 阅读 · 0 评论 -
八股文系列-- 1000道Java面试题第2套
大家好,我是青空。最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,能不能做一些分享,和做一些面试题解析的系列文章。青空收到消息之后,觉得这个建议挺不错的。那我就计划简单及概念性的面试题就多个面试题汇总成一片文章,比较复杂的面试题就单独拎出来讲讲。文末领取面试大全1.JDK 动态代理和CGLIB动态代理的区别JDK动态代理只能对实现了接口的类生成代理,而不能针对类。CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法。因为是继承, 所以该类 或方法最好不要声明成原创 2021-09-07 15:35:29 · 527 阅读 · 0 评论 -
八股文系列- Java面试题第一套
大家好,我是青空。最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,能不能做一些分享,和做一些面试题解析的系列文章。青空收到消息之后,觉得这个建议挺不错的。那我就计划简单及概念性的面试题就多个面试题汇总成一片文章,比较复杂的面试题就单独拎出来讲讲。文末领取面试大全1、Java语言主要特性1、简单性Java设计者在设计Java的时候尽可能的接近于C++,但又剔除了C++中很少使用、难以理解、易混淆的特性,使得大多数程序员很容易学习和使用Java2、面向对象Java面向对象特性和C++旗鼓相当,但是J原创 2021-09-01 08:17:06 · 400 阅读 · 0 评论 -
Java 每日一题1
Java 每日一题(20210906)大家好,我是青空。快来和青空看看今天的Java每日一题吧题目实现一个算法,确定一个字符串的所有字符是否全都不同。假使不允许使用额外的数据结构,又该如何处理?解法第一种构建一个布尔值的数组,索引值i对应的标记指示该字符串是否含有字母表第i 个字符。若这个字符第二次出现,则立即返回falsepublic boolean isUniqueChars2(String str) { if (str.length() > 256) { ret原创 2021-09-05 23:47:15 · 126 阅读 · 0 评论 -
八股文系列-1000道Java面试题第3套附答案
大家好,我是青空。最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,能不能做一些分享,和做一些面试题解析的系列文章。青空收到消息之后,觉得这个建议挺不错的。那我就计划简单及概念性的面试题就多个面试题汇总成一片文章,比较复杂的面试题就单独拎出来讲讲。文末领取面试大全1.内部类的分类有哪些内部类可以分为四种: 成员内部类、局部内部类、匿名内部类和静态内部类 。2.什么是内部类?在Java中,可以将一个类的定义放在另外一个类的定义内部,这就是 内部类 。内部类本身就 是类的一 个属性,原创 2021-09-08 10:11:07 · 959 阅读 · 0 评论 -
八股文系列-1000道Java面试题第4套附答案
大家好,我是青空。最近又赶上跳槽的高峰期,好多粉丝,都问我要有没有最新面试题,能不能做一些分享,和做一些面试题解析的系列文章。青空收到消息之后,觉得这个建议挺不错的。那我就计划简单及概念性的面试题就多个面试题汇总成一片文章,比较复杂的面试题就单独拎出来讲讲。文末领取面试大全1.static的独特之处1、被static修饰的变量或者方法是独立于该类的任何对象,也就是说,这些变量和方法 不属于 任何一个实例对象,而是被类的实例对象所共享 。怎么理解 “被类的实例对象所共享” 这句话呢?就是说,一原创 2021-09-09 09:32:25 · 394 阅读 · 0 评论 -
Java数组基础梳理
大家好,我是青空。今天青空将要给大家介绍Java 数组。数组在Java表示为一种数据结构,用来存储一组相同类型的数据。可以通过一个整型下标访问数组种的每一个数据。声明方式下面我们来了解一下,声明一个数组变量,需要做哪些操作。我们直接来看示例:int[] a;从示例可以看到,Java数组的声明方式很简单,先定义数组类型为 int,数组类型后面紧跟[], 然后是变量名称。我们刚才只是简单的做了声明,并没有对数组变量a 进行初始化。 数组的初始化在Java中需要通过new运算符来创建。int[]原创 2021-10-20 08:15:00 · 181 阅读 · 0 评论 -
Java 每日一题 5 附答案
大家好,我是青空。快来和青空看看今天的Java每日一题吧题目给定一幅由N×N矩阵表示的图像,其中每个像素的大小为 4 字节,编写一个方法,将图像旋转 90 度。不占用额外内存空间能否做到?解法预警不建议直接看下面答案,可以自己先思考一下怎么处理再看大看比较合适解法要将矩阵旋转90度,最简单的做法就是一层一层进行旋转。对每一层执行环状旋转(circular rotation),将上边移到右边、右边移到下边、下边移到左边、左边移到上边。那么,该如何交换这四条边?一种做法是把上面复制到一个数组中,然后将左边移到原创 2021-09-10 09:56:54 · 91 阅读 · 0 评论 -
Java 每日一题 6 附答案
大家好,我是青空。快来和青空看看今天的Java每日一题吧题目编写一个算法,若M×N矩阵中某个元素为 0,则将其所在的行与列清零。解法预警不建议直接看下面答案,可以自己先思考一下怎么处理再看大看比较合适解法乍一看,这个问题似乎很简单:直接遍历整个矩阵,只要发现值为零的元素,就将其所在的 8 行与列清零。不过这种方法有个陷阱:在读取被清零的行或列时,读到的尽是零,于是所在行与列都得变成零。很快,整个矩阵的所有元素都会变为零。避开这个陷阱的方法之一,是新建一个矩阵标记零元素位置。然后,在第二次原创 2021-09-14 15:02:25 · 97 阅读 · 0 评论 -
1000道Java面试题之mysql篇
大家好,我是青空。今天青空给大家带来的是mysql相关面试题文末领取面试大全1.解释 MySQL 外连接、内连接与自连接的区别先说什么是交叉连接: 交叉连接又叫笛卡尔积,它是指不使用任何条件,直接将一个表的所有记录和另一个表中的所有记录一一匹配。内连接则是只有条件的交叉连接,根据某个条件筛选出符合条件的记录,不符合条件的记录不会出现在 结果集中,即内连接只连接匹配的行。外连接 其结果集中不仅包含符合连接条件的行,而且还会包括 左表、右表或两个表中 的所有数据行,这三种情况依次称之为左外连接,右外连接,和全外原创 2021-09-15 09:15:00 · 655 阅读 · 0 评论 -
1000道大厂面试题之Spring Boot
大家好,我是青空。今天青空给大家带来的是Spring相关面试题文末领取面试大全1.SpringBoot 2.X有哪些新特性?与1.X有什么区别?配置变更、JDK版本升级、第三方类库升级、响应式Spring编程支持、HTTP/2支持、配置属性绑定、更多改进与加强2.保护SpringBoot应用有哪些方法?在生产中使用HTTPS使用Snyk检查你的依赖关系升级到最新版本启用CSRF保护使用内容安全策略防止XSS攻击3.Spring Boot的核心注解是哪些?他由哪几个注解组成的?启动类上面的注解是原创 2021-09-18 10:00:58 · 150 阅读 · 0 评论 -
1000道大厂面试题之Redis面试题
大家好,我是青空。今天青空给大家带来的是Redis相关面试题文末领取面试大全1.Redis如何做内存优化?尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。比如你的web系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的 key,而是 应该把这个用户的所有信息存储到一张散列表里面。2.Redis中的管道有什么用?一次请求/响应服务器能实现处理新的请求即使旧的请求还未被响应。这样就可以将多个命令发送到原创 2021-09-16 08:54:21 · 255 阅读 · 0 评论 -
IntelliJ IDEA 的 WIN 和 Mac 快捷键大全 2021 最新版
IntelliJ IDEA 的 WIN 和 Mac 快捷键大全 2021 最新版大家好,我是青空。IntelliJ IDEA 是Java开发者的必备神器,但是对于初学者来说,上手不是特别容易。青空当初从eclipse转到 IntelliJ IDEA 的时候,来回反反复复搞了很久才适应过来。今天给大家整理了最新版的IDEA 快捷键,掌握IDEA的快捷键可以让你事半功倍,彻底从一手鼠标一手键盘从解放出来,彻底放弃鼠标,全程使用快捷键,提高开发效率。激活戳这里 https://java.huitools.原创 2021-09-23 20:54:15 · 467 阅读 · 1 评论 -
Github爱好者周刊第6期
大家好,我是青空,欢迎关注公众号「蚂蚁原图」, 每周五为您奉上本周热门项目。目录Java - MindustryPython - Python 算法实现C# - mauiGo - Podman,管理OCI容器和荚的工具JavaScript - 30 seconds of codeJavaMindustry一个用Java编写的沙盒塔防游戏。github.com/Anuken/MindustryPythonThe Algorithms - Python所有的算法都是用Python实现的(用于教育)。这些实现仅用原创 2021-09-10 09:57:26 · 150 阅读 · 0 评论 -
Java 每日一题 7 附答案
大家好,我是青空。快来和青空看看今天的Java每日一题吧题目假定有一个方法isSubstring,可检查一个单词是否为其他字符串的子串。给定两个字 符串s1 和s2,请编写代码检查s2 是否为s1 旋转而成,要求只能调用一次isSubstring。(比如, waterbottle是erbottlewat旋转后的字符串。)解法预警不建议直接看下面答案,可以自己先思考一下怎么处理再看大看比较合适解法假定s2由s1旋转而成,那么,我们可以找出旋转点在哪。例如,若以wat对waterbottle旋原创 2021-09-14 15:30:36 · 100 阅读 · 0 评论 -
Java 每日一题 11 附答案
大家好,我是青空。快来和青空看看今天的Java每日一题吧题目编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。解法预警不建议直接看下面答案,可以自己先思考一下怎么处理再看答案比较合适解法要是链表换作数组,搬移元素时就要特别小心,因为搬移数组元素的开销很大。不过,移动链表的元素则要容易许多。我们不必移动和交换元素,可以直接创建两个链表: 一个链表存放小于x的元素;另一个链表存放大于或等于x的元素。我们会迭代访问整个链表,将元素插入before或af原创 2021-09-18 10:18:36 · 89 阅读 · 0 评论 -
1000道大厂面试题之Spring Cloud 篇 2021最新
Spring cloud 大厂热门面试题 免费领取原创 2021-09-22 10:42:40 · 253 阅读 · 0 评论 -
1000道大厂Java面试题之 Java 8 篇章
大家好,我是青空。今天青空给大家带来的是Java 8 相关面试题文末领取面试大全1.Lambda表达式的参数列表与Lambda箭头运算符有何不同?Lambda表达式可以一次携带零个,一个或甚至多个参数。另一方面,Lambda箭头运算符使用图标“->” 将这些参数从列表和主体中分离出来。2.是什么使JavaSE8优于其他?Java SE 8具有以下功能,使其优于其他功能: 它编写并行代码。它提供了更多可用的代码。它具有改进的性能应用程序。它具有更易读和简 洁的代码。它支持编写包含促销的数据库。3.什么是原创 2021-09-23 20:55:07 · 435 阅读 · 0 评论 -
1000道大厂面试题之Spring面试题 2021最新版
1000道大厂面试题之Spring面试题 2021最新版原创 2021-09-17 10:07:44 · 270 阅读 · 0 评论 -
Java每日一题 8 删除链表重复节点
大家好,我是青空。快来和青空看看今天的Java每日一题吧题目编写代码,移除未排序链表中的重复结点进阶: 如果不得使用临时缓冲区,该怎么解决?解法预警不建议直接看下面答案,可以自己先思考一下怎么处理再看大看比较合适解法要想移除链表中的重复结点,我们需要设法记录有哪些是重复的。这里只要用到一个简单的散列表。在下面的解法中,我们会直接迭代访问整个链表,将每个结点加入散列表。若发现有重复元 素,则将该结点从链表中移除,然后继续迭代。这个题目使用了链表,因此只需扫描一次就能搞定。 public原创 2021-09-16 09:46:08 · 90 阅读 · 0 评论 -
1000道Java面试题之Java IO 附答案
100道Java面试题,Java IO面试题,面经。原创 2021-09-13 10:31:21 · 512 阅读 · 0 评论 -
1000道Java面试题之 Mybatis
大家好,我是青空。今天给大家分享的Mybatis相关的面试题目,共计15题。文末领取面试大全1.Mybatis的一级、二级缓存一级缓存: 基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该 Session 中的所有 Cache 就将清空,默认打开一级缓存。二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap 存储,不同在于其 存储作用域为 Mapper(Namespac原创 2021-09-14 15:03:28 · 264 阅读 · 0 评论 -
Java 每日一题 9 附答案 链表
大家好,我是青空。快来和青空看看今天的Java每日一题吧题目实现一个算法,找出单向链表中倒数第k个结点。解法预警不建议直接看下面答案,可以自己先思考一下怎么处理再看大看比较合适解法下面会以递归和非递归的方式解决这个问题。一般来说,递归解法更简洁,但效率比较差。 例如,就这个问题来说,递归解法的代码量大概只有迭代解法的一半,但要占用O(n)空间,其中 n为链表结点个数。注意,在下面的解法中,k定义如下:传入k = 1将返回最后一个结点,k = 2返回倒数第2 个结点,依此类推。当然,也可以原创 2021-09-15 10:23:58 · 67 阅读 · 0 评论 -
用 Java 生成和识别二维码就这么简单
大家好,我是青空。青空最近一直在思考一个问题,Java 能不能做一些比较有意思的事情,但是在网络上搜索的时候,有意思好玩的东西,都被 Python 给做了。Java 似乎就只剩下八股文,面试,框架,架构等等的内容。那为什么很少有人用 Java 做这些好玩的东西呢?在大家的固有观念里,Java 是比较笨重的,每次写代码必须要开启一个庞大的IDE来完成。但是也不妨碍我们拿 Java 出来玩一玩。今天青空就先带大家做一个二维码玩玩。现在二维码在我们的生活中非常的常见。在我们的生活、交流、出行等等场景中,都用原创 2021-11-25 15:08:48 · 3880 阅读 · 1 评论 -
List 转 Map , 齐活了
大家好,我是青空。在我们平时的工作中,充满了各种类型之间的转换。今天青空带大家上手 List 转 Map 的各种操作。我们将假设 List 中的每个元素都有一个标识符,该标识符将在生成的 Map 中作为一个键使用。定义一个类型我们在转换之前,我们先暂定一个类来用于各种转换demo的演示。public class Animal { private int id; private String name; // 构造函数 、 get 、 set}我们假定 id 字段原创 2021-12-28 14:17:56 · 714 阅读 · 0 评论 -
从0到1开发 idea 插件
Idea 插件开发入门原创 2022-02-16 14:17:32 · 1420 阅读 · 0 评论 -
字符串拼接这种小事,我翻车了……
大家好,我是青空。最近青空在一个字符串拼接的小事情上翻车了,真的是万万没想到。Java 提供了多种方法和类可以用来拼接字符串。但是如果我们不注意 null 对象,则生成的 String 可能包含一些不需要的值。问题场景假设我们要拼接的 String 数组的元素,其中任何元素都可能为 null。举个例子String[] values = { "Java ", null, "", "is ", "great!" };String result = "";for (String value :原创 2021-12-28 14:14:44 · 486 阅读 · 0 评论 -
OpenCV制作黑客帝国风格的照片
大家好,我是青空。前不久,黑客帝国系列最新的 《矩阵重启》 上映了。黑客帝国是早期科幻类型的翘楚。但是这次有点垮了。豆瓣评分不到6分。小的时候,看到黑客帝国的那些照片,一串串数字从上而下, 感觉特别酷炫。 今天我们就来看看怎么制作类似的效果。准备工作一张基努里维斯的照片准备好项目需要使用到的库 opencv,在 CMakeLists.txt 里配置完成。cmake_minimum_required(VERSION 3.17)project(opencv_demo)set(CMAKE_CX原创 2022-01-23 11:20:19 · 2934 阅读 · 0 评论 -
JavaCV 实现照片打马赛克功能
大家好,我是青空。青空最近在逛一些社区的时候发现了有很多图片是像素图,感觉挺好玩的。正巧最近自己在学习OpenCV,所以在这里给大家演示一下如何使用OpenCV来处理像素图。像素图其实有点类似于类似于打马赛克的功能。通过像素的变化,演示一个像素画的功能。像素画在 NFT 中特别的流行。准备工作我们先引入 JavaCV 的依赖库 <dependency> <groupId>org.bytedeco</groupId> <artifactId原创 2022-01-21 09:49:22 · 3422 阅读 · 0 评论 -
一个操作,轻松迁移 Maven 至 Gradle
今天我们来讲讲如何将 Maven 项目转换为 Gradle 项目。 这个过程还是蛮简单的,下面通过一个例子来说明怎么转换。如果没有安装 gradle, 我们可以从 Gradle 官网下载最新的版本,根据gradle官方的文档安装即可。 可以看我们之前的文章,这里不过多的描述。假设我们有这样一个 maven项目,pom.xml 文件如下:有了maven项目,也安装了gradle,那我们就可以动手转换到gradle了。我们在终端跳转到Maven项目的根目录,就是包含pom.xml 文件的目录, 然后执行 命原创 2022-12-05 14:29:29 · 3771 阅读 · 0 评论 -
JavaCV 制作字符画
通过使用JavaCV中的OpenCV来制作一幅字符画原创 2021-12-02 10:45:25 · 3386 阅读 · 0 评论 -
谈谈Java 如何做 HTTPS 双向认证
大家好,我是青空。想必大家对 HTTPS 都有一定的了解吧。今天青空将给大家聊聊 HTTPS 是如何做安全认证的。 HTTPS 是 HTTP 的一个扩展,允许计算机网络中的两个实体之间进行安全通信。HTTPS 使用TLS(传输层安全)协议来实现安全连接。TLS 可以通过单向或双向的证书验证来实现。在单向中,服务器分享其公共证书,以便客户可以验证它是一个受信任的服务器。另一个选择是双向验证。客户端和服务器都分享他们的公共证书以验证对方的身份。青空将重点介绍双向证书验证,服务器也将检查客户的证书。Ja原创 2021-12-28 14:23:10 · 1226 阅读 · 0 评论 -
思维导图|kotlin 作用域函数
大家好,我是青空。今天给大家带来的是kotlin 作用域函数。文末可领取大厂面试题作用域函数是什么意思呢通过编译器的手段增加一些操作符,使代码变得更简洁所以,你不用它也完全可以实现相同的功能。它提供了一个临时作用域,让对象执行代码块的 代码看起来更简洁感受一下 作用域函数 带来的代码整洁data class Person(var name: String, var age: Int, var c原创 2021-08-30 16:54:50 · 209 阅读 · 0 评论 -
思维导图|kotlin 反射
大家好,我是青空。今天给大家带来的是kotlin 反射。文末可领取大厂面试题获取静态已知Kotlin类的引用使用::classval c = MyClass::class若要获得 Java 类引用需在 KClass 实例上使用 .java 属性val c = MyClass::classc.java通过已有的对象获取类的引用也是用::class获取 val widget: Widget = …原创 2021-08-30 16:54:14 · 116 阅读 · 0 评论 -
思维导图|kotlin 对象表达式和对象声明
大家好,我是青空。今天给大家带来的是kotlin 对象表达式和对象声明。文末可领取大厂面试题作用创建一个对某个类做了轻微改动的类的对象且不需要去声明一个新的子类对象表达式通过匿名内部类或继承、或实现或通过构造函数传值给其参数匿名对象只在本地和私有作用域中声明范例 window.addMouseListener(object : MouseAdapter() { override fun mouseCl原创 2021-08-30 16:53:36 · 129 阅读 · 0 评论 -
思维导图|kotlin 注解
大家好,我是青空。今天给大家带来的是kotlin 注解。文末可领取大厂面试题注解声明简介将 annotation 修饰符放在类的前面annotation class Fancy附加属性可以通过用元注解标注注解类来指定属性类型指定该注解是公有 API 的一部分,并且应该包含在生成的 API 文档中显示的类或方法的签名中。范例允许在单个元素上多次使用相同的该注解;指定该注解是否存储在编译后的 class 文件中,以及它在运行时能否通过反射可见 (默认都是 true);指定可以用该注解标注的元素的可能的类型(类原创 2021-08-30 16:52:55 · 295 阅读 · 0 评论