Java
黄焖几米饭
这个作者很懒,什么都没留下…
展开
-
【LeetCode】strStr 实现 strStr()(JAVA)
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对原创 2020-11-16 10:22:27 · 135 阅读 · 0 评论 -
如何遍历一个文件夹下的所有子文件(JAVA)
利用File类中的一个listFiles将该文件路径下所有的文件全部列出来,然后通过循环遍历输出,然后判断是否是一个文件夹,如果是递归调用原方法再次进行遍历。public class showDirectory { public static void main(String[] args) { File file = new File("D:\\gitee"); showDirectory(file); } public static void原创 2020-10-27 17:20:10 · 677 阅读 · 0 评论 -
【LeetCode】isPalindrome 回文串(JAVA)
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: falseclass Solution { public boolean isPalindrome(String s) { //将原字符串转换为字符数组并判断是否为数字字符或者字母后 //统一转成原创 2020-10-23 11:03:03 · 1285 阅读 · 0 评论 -
【LeetCode】isAnagram 有效的字母异位词(JAVA)
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?方法一:通过将俩个字符串转换为字符数组并且排序,返回对比结果。class Solution { publi原创 2020-10-22 14:59:43 · 392 阅读 · 0 评论 -
【LeetCode】reveres 整数反转(JAVA)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。class Solution { public int reverse(int x) { //存储循环后的整数 i原创 2020-10-22 14:50:46 · 142 阅读 · 0 评论 -
【LeetCode】reverseString 反转字符串(JAVA)
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]class原创 2020-10-22 14:43:12 · 122 阅读 · 0 评论 -
【LeetCode】moveZeroes 移动零(JAVA)
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。class Solution { public void moveZeroes(int[] nums) { //记录0的个数 int count = 0; for (int i = 0; i < nums.lengt原创 2020-10-17 12:30:47 · 102 阅读 · 0 评论 -
【LeetCode】maxProfit 买卖股票的最佳时机 II(JAVA)
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6原创 2020-10-16 22:03:07 · 418 阅读 · 0 评论 -
【LeetCode】removeDuplicates 删除排序数组中的重复项(JAVA)
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原数组 nums 的原创 2020-10-15 21:46:55 · 1169 阅读 · 0 评论 -
【LeetCode】intersect 两个数组的交集 II(JAVA)
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。进阶:如果给定的数组已经排好序呢?你将如何优化你的算法?如果 nums1 的大小比 nums2 小很多,哪种方法更优?如果 nums2原创 2020-10-14 20:55:32 · 482 阅读 · 0 评论 -
【LeetCode】singleNumber 只出现一次的数字(JAVA)
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4方法一:进行排序后,俩俩元素进行比对返回结果。class Solution { public int singleNumber(int[] nums) { Arrays.sort(nums);原创 2020-10-13 19:38:19 · 69 阅读 · 0 评论 -
【LeetCode】containsDuplicate 存在重复元素(JAVA)
给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true方法一:使用简单粗暴的双重for循环来一个一个比对数据是否相同。(leetcode提交显示超时,不推荐使用)class Solution { publ原创 2020-10-12 21:43:03 · 135 阅读 · 0 评论 -
【Java】Mybatis开发步骤
Mybaits相关概念Mybaits是一款基于ORM的半自动轻量级持久型框架,其中ORM全称为Object/Relation/Mapping,即对象关系映射。ORM:实体类与数据库表产生映射关系半自动:手动编写sql语句轻量级:启动所需的资源较少Mybaits开发步骤:添加Mybaits的坐标创建数据库表编写实体类编写映射文件Mapper.xml编写核心文件sqlMapConfig.xml编写测试类进行测试...原创 2020-07-21 16:14:08 · 115 阅读 · 0 评论 -
【JVM】Java虚拟机之类加载机制(二)
类加载器Java虚拟机中的“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到了Java虚拟机外部去实现,以便应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader)。类与类加载器类加载器虽然只用于实现类的加载动作,但在Java程序中起到的作用却远超类加载阶段。对于任意一个类。都必须由加载它的类加载器和这个类本身一起共同确立在其Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。换句话来说,比较俩个类是否“相等”,只有在这俩个原创 2020-06-12 15:25:01 · 88 阅读 · 0 评论 -
【JVM】Java虚拟机之类加载机制(一)
概述Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为JVM的类加载机制。类加载的过程一个类从被加载到虚拟机内存中开始,从卸载出内存为止,它的整个生命周期将会经过加载(Loading),验证(Verification),准备(Preparation),解析(Resolution),初始化(Initialization),使用(Using),卸载(Unloading)七个阶段。其中验证,准备,解析三个部分原创 2020-06-09 15:38:03 · 161 阅读 · 0 评论 -
【Java】Java语言基础之注解
注解注解(Annotation),也叫做元注解,在JDK1.5中添加到Java特性中。在代码中,注解不会直接影响到你的代码执行,而且使代码更加简洁明了。注解的语法比较简单,一般是用@符号作为开头。元注解在@Override 注解的定义中:@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}—————————分割线——————————————————————————原创 2020-05-26 16:39:47 · 134 阅读 · 0 评论 -
【Java】Java后端学习路线
前俩天有幸观看b站程序员大佬CodeSheep的直播,获取了这张Java后端学习路线图,这张图上面有的知识懂一些有的止步于用过的程度,有的不懂,甚至都没见过。希望自己可以按照这张学习路线图,对过往的知识进行总结归纳,并且加强对没接触过的知识的学习,早日成神并平稳落地哈哈哈。...原创 2020-05-12 10:59:00 · 192 阅读 · 0 评论 -
【Java】spring框架中的AOP和IOC
什么是SpringSpring是分层的full-stack轻量级Java开源框架,其中以AOP和IOC为内核,提供了展现层Spring MVC的业务层事务管理等众多的企业级应用技术,还整合了多方第三方开源框架和类库。优点:方便解耦;AOP编程支持;声明式事务;方便程序测试;方便集成各种优秀框架;降低API的使用难度;什么是AOP和IOCAOP被称为面向切面编程全程(Aspect...原创 2020-05-05 15:48:46 · 390 阅读 · 0 评论 -
【Java】Java语言基础之反射
什么是反射:反射就是把Java类中的各个成分映射成一个个的Java对象。即在运行状态中,对于任意一个类,都能够知道这个类的所以属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性。这种动态获取信息及动态调用对象方法的功能叫Java的反射机制。...原创 2020-04-27 17:24:22 · 81 阅读 · 0 评论 -
【Java】多线程和创建线程的三种方法
多线程多线程即是在在同一时间,系统可以做多件事情。首先要理解进程(Processor)和线程(Thread)的区别:进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。创建线程的三种方法Java多线程实现方式主要有三种:继承...原创 2020-04-24 17:24:56 · 134 阅读 · 0 评论