自学
新手学java2021
这个作者很懒,什么都没留下…
展开
-
关于springboot学习的一点记录
2、作为一个新手,我学着忘着,不保证正确,以下是我摸索的一个点,昨天整合mybatis之后,导入mybatisplus相关依赖,之后发现之前写的mapper无法使用了,后来发现需要将yaml文件中mybatis改为mybatis-plus。3、另外,忘记是什么情况下了,发生了服务器无法启动的情况,最后我发现导入的依赖,有的上面写着conflict,显然是发生了冲突,我将MyBatis-Plus中有冲突的依赖找到,然后把这个依赖所在的其他地方都排除掉,得以解决。原创 2022-08-20 21:51:06 · 318 阅读 · 1 评论 -
第10题。
再根据题意写一个这里只有右和下情况,起始位置如果不是(0,0)就出错了。下面方法针对的是,起始位置任意的情况(但没有把位置输入拉出来)这里提交的时候,DFS用时,内存消耗较BFS少。分析两者时空间复杂度都是o(mn)...原创 2022-07-27 11:03:48 · 161 阅读 · 0 评论 -
第十三题。
方法二利用与运算逐位判断(来自力扣作者jyd)每次都对最右边那一位进行判断,判断完就右移一位接着判断。时间复杂度o(n)(n指的是变为二进制数后1所在的最高位位置,例如11–1011,就是4位)方法三消1法(作者同上)利用n&(n-1),可以将n最右边的1消掉,直到n=0为止。这里不知道Integer.toBinaryString的性能。时间复杂度o(M)(M指的是n中1的个数)...原创 2022-07-25 16:18:29 · 163 阅读 · 0 评论 -
第九题。。
看到有网友对最后一种情况,采用线性查找方式,个人感觉如果中间值落在上升1中(例如5,5,5,5(中间值),5,1,5,5,),那么遍历需要至少遍历一半多(比较了5次(1。如果中间值落在上升2中(5,5,1,5,5(中间值),5,5,5,5),遍历情况(比较2次),采用上述方法(循环2次,比较5次((2-1)*4)+1)5)),而采用上面方法,是用中间值向后遍历(循环了2次,但由于上面的if,比较了8次(2。方法一时间复杂度o(1)时间复杂度o(logn)...原创 2022-07-25 15:41:55 · 133 阅读 · 0 评论 -
第六七八题
第七题和第八题一样,下面代码是第八题。原创 2022-07-24 23:26:40 · 51 阅读 · 0 评论 -
第五题。。
②根据①可以知道左/右子树节点个数,于是可以得到左/右子树的前/中序遍历结果。前序遍历根节点左子树的前序遍历结果右子树的前序遍历结果。中序遍历左子树的中序遍历结果根节点右子树的中序遍历结果。思路①在前序遍历中取出根节点,得到其在中序遍历中的位置。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。迭代法(马马虎虎,看很久,似懂非懂,代码先放在这里)③递归直到左/右子树为空。...原创 2022-07-23 14:23:06 · 197 阅读 · 0 评论 -
手机验证码简略代码
代码】手机验证码简略代码。原创 2022-07-21 17:32:56 · 673 阅读 · 0 评论 -
第四题。。
方法三递归(垃圾表达能力,看代码)(我最讨厌递归,总是想不明白,即使写出来了,也觉得不够清晰,标记一下,以后可能再看)输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。方法二①利用栈“后进先出特点”,从头遍历链表时,一边遍历一边压栈。②根据栈大小创建数组,从索引0开始一边弹栈一边给数组赋值。②回溯每一层,都将该层节点数值倒序赋值给该层位置数组。①走到链表最后一层,并利用此节点位置创建数组。方法一①遍历链表得到节点数,然后创建数组。②从头到尾遍历链表,从尾到头赋值数组。...原创 2022-07-20 15:21:17 · 98 阅读 · 0 评论 -
第三题。。
注解在网络编程中,如果URL参数中含有特殊字符,可能导致服务器端无法获得正确的参数值,我们需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在%后面跟上ASCII码的两位十六位进制表示。例如题目中的空格在ASCII中是32,则表示成%20。请实现一个函数,把字符串s中的每个空格替换成"%20"时间复杂度o(n)空间复杂度o(n)...原创 2022-07-20 13:28:00 · 87 阅读 · 0 评论 -
题目三:矩阵找数
在一个n*m的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。时间复杂度o(n+m)...原创 2022-07-19 23:20:47 · 401 阅读 · 0 评论 -
题目二:不修改数组找出重复数字
思路找到最中间的值middleValue,比较小于它的数有多少个,如果个数小于等于这个值,这里有没有重复数字不知道,但大于这个值的数里一定有,所以再去大于这个数的范围里(middleValue~end)去找。和力扣题目不一样,这里长度为n,要求数字范围是1~n-1,所以一定有重复数字。...原创 2022-07-19 21:16:02 · 160 阅读 · 0 评论 -
力扣第一题
如果不是m,说明两个位置得数都不对应,就把这个值放回它应该在的地方,也就是把第i个位置的数和第m个位置的数进行交换(这里至少保证了第m个位置数就是m),接着如果换之后第i个位置的数还不是i(肯定也不是m),那就继续换(这时又是一个新的位置),直到数为i为止。分析长度为n,0-n-1正好n个数,如果没有一个数字重复,那么排序之后第i个位置的值就等于i,于是我们可以这么做从到到尾遍历数组,如果第i个位置的值不等于i(假如等于m),如果第m位置的数也是m,那说明找到了重复数字,返回即可。...原创 2022-07-18 21:57:33 · 305 阅读 · 0 评论 -
线索化二叉树
思路都写在注释里了原创 2022-07-06 16:19:20 · 186 阅读 · 0 评论 -
插入排序问题
数组实现和链表实现原创 2022-07-02 12:06:37 · 169 阅读 · 0 评论 -
八皇后问题
笨蛋一个,做了一天多才做出来,还是有提示的情况下。。。。下面是我的代码输出结果如下:(0,0)(1,4)(2,7)(3,5)(4,2)(5,6)(6,1)(7,3)(0,0)(1,5)(2,7)(3,2)(4,6)(5,3)(6,1)(7,4)(0,0)(1,6)(2,3)(3,5)(4,7)(5,1)(6,4)(7,2)(0,0)(1,6)(2,4)(3,7)(4,1)(5,3)(6,5)(7,2)(0,1)(1,3)(2,5)(3,7)(4,2)(5,0)(6,6)(7,4)(0,1)(1原创 2022-07-01 15:34:35 · 142 阅读 · 0 评论 -
基数排序学习
根据桶子法思想自己写的,目前运行正常,有没有不足还不知道时间复杂度:k/2*num^2(k代表位数)?参考网上资料,对代码做了一些修改,增加一个辅助数组,用来指示每个桶中的数据个数,放数据时,不用依次判断了看了一下别人的时间复杂度,好像比我的少网上看了一个别人写的,桶没有设立二维数组,而是有多少数据,建立多大的一维数组辅助数组**a[i]的值减去a[i-1]**的值表示位数为i的数据的个数而a[i]-1的值就对应了放位数值i的桶的最大下标这是个大致思路,具体实现这里就不放了...原创 2022-06-28 15:09:32 · 95 阅读 · 0 评论 -
最后一些点
Lambda表达式package com.www.java1;import org.junit.Test;import java.util.Comparator;import java.util.function.Consumer;/** * Lambda表达式实质:接口实例 * * 如果一个接口中只有一个抽象方法,则称为函数式接口 * @author www * @creat 2022-{MONTH}-{DAY} */public class LambdaTest {原创 2022-03-19 22:31:28 · 118 阅读 · 0 评论 -
动态代理简学
package com.www.java;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;/** * 动态代理 * * @author www * @creat 2022-{MONTH}-{DAY} */interface Human{ String getBelief(); void eat(Strin.原创 2022-03-18 13:39:59 · 80 阅读 · 0 评论 -
反射机制。
package com.www.java;/** * @author www * @creat 2022-{MONTH}-{DAY} */public class Person { private String name; public int age; public Person() { } public Person(String name, int age) { this.name = name; this.age原创 2022-03-17 21:44:48 · 233 阅读 · 0 评论 -
网络编程。
package com.www.java1;import java.net.InetAddress;import java.net.UnknownHostException;/** * 一、网络编程中有两个主要的问题: * 如何准确地定位网络上一台或多台主机;定位主机上的特定的应用 * 找到主机后如何可靠高效地进行数据传输 * * 二、网络编程中的两个要素 * 1.对应问题一,IP和端口号 * 2.对应问题二,网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据原创 2022-03-15 17:43:09 · 258 阅读 · 0 评论 -
泛型的学习
在集合中使用泛型package com.www.java1;/** * @author www * @creat 2022-{MONTH}-{DAY} */public class MyDate implements Comparable<MyDate>{ private int year; private int month; private int day; public MyDate(int year, int month, int day)原创 2022-03-10 11:26:17 · 162 阅读 · 0 评论 -
Map接口
package com.www.java1;import org.junit.Test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;/** * 一、Map实现类的结构 * |------Map:双列数据,存储key-value数据,-----类似于“函数” * |-----HashMap:作为Map主要实现类:线程不安全,效率高;可以原创 2022-03-08 21:07:25 · 123 阅读 · 0 评论 -
Java集合
集合List也叫“动态数组”(长度可变)package com.www.java2;import org.junit.Test;import java.util.ArrayList;import java.util.Collection;import java.util.Date;/** *1.集合概述 * 存储针对是内存存储,而不是持久化存储 *2.Collection接口中方法使用 * * * @author www * @creat 2022-{MONTH}原创 2022-03-07 18:10:28 · 237 阅读 · 0 评论 -
枚举类与注解
枚举类1.枚举类:类的对象是确定的,有限个2.当需要定义一组常量时,建议使用枚举类3.如果枚举类只有一个对象,那么它将作为一个单例模式的实现方式package com.www.java;/** * 一、如何定义枚举类 * 方式一:JDK5.0之前,自定义枚举类 * 方式二:JDK5.0时,使用enum关键字定义枚举类 * @author www * @creat 2022-{MONTH}-{DAY} */public class SeasonTest { public st原创 2022-03-05 18:02:26 · 533 阅读 · 0 评论 -
Java常用类(String、StringBuffer、StringBuilder)
Stringpackage com.www.java;import org.junit.Test;/** * String使用 * @author www * @creat 2022-{MONTH}-{DAY} */public class StringTest { /* * String:字符串,用""引起来表示 * 1.声明为final,不可被继承 * 2.实现了Serializable接口:表示字符串支持序列化 * 实现了Compara原创 2022-03-02 23:43:23 · 230 阅读 · 0 评论 -
线程创建方式
package com.www.java3;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/** * 创建线程的方式三——Callable接口------>JDK5.0新增 * 例子:遍历100以内的偶数,并返回他们的和 * @author www * @creat 2022-{M..原创 2022-03-01 14:17:46 · 124 阅读 · 0 评论 -
有问题的一段代码,待解决
package com.www.java2;/** * * @author www * @creat 2022-{MONTH}-{DAY} */class Clerk{ private int productCount = 0; public void produceProduct() { if(productCount < 20){ try { Thread.sleep(原创 2022-03-01 11:25:32 · 327 阅读 · 0 评论 -
线程的通信
package com.www.java3;/** * 线程通信例子:使用两个线程交替打印1-100 * 三个方法: * 1.wait():一旦执行此方法,线程进入阻塞状态,并释放同步监视器 * 2.notify():一旦执行此方法,唤醒被wait阻塞的一个线程,如果有多个线程被wait,则唤醒优先级最高的那个 * 3.notifyAll():唤醒所有被wait阻塞的线程 * * 说明: * 1.wait()、notify()、notifyAll()只能出现在同步代码块,同步方法中(lo原创 2022-02-28 20:50:38 · 130 阅读 · 0 评论 -
Lock锁解决线程安全问题
package com.www.java1;import java.util.concurrent.locks.ReentrantLock;/** * 解决线程安全的方式三:Lock锁 * @author www * @creat 2022-{MONTH}-{DAY} */public class LockTest { public static void main(String[] args) { Window win = new Window(); .原创 2022-02-28 15:50:03 · 131 阅读 · 0 评论 -
懒汉式线程安全、死锁问题
package com.www.java1;/** * 使用同步机制将单例模式中的懒汉机制改写为线程安全的 * @author www * @creat 2022-{MONTH}-{DAY} */public class BankTest { public static void main(String[] args) { }}class Bank{ private Bank(){ } private static Bank instance =原创 2022-02-28 13:39:17 · 107 阅读 · 0 评论 -
线程的安全问题
package com.www.java02;/** * 例子:创建三个窗口卖票,总共一百张,使用实现Runnable接口方式 * @author www * @creat 2022-{MONTH}-{DAY} */class MyThread1 implements Runnable{ private int sum = 100; @Override public void run() { while(true){ if(su.原创 2022-02-27 20:56:30 · 220 阅读 · 0 评论 -
线程的生命周期
原创 2022-02-27 17:21:33 · 158 阅读 · 0 评论 -
创建多线程方式二
package com.www.java01;/** * 创建多线程方式二:实现Runnable接口 * 1.创建一个实现Runnable接口的类 * 2.实现接口中的抽象方法:run方法 * 3.创建实现类的对象 * 4.将此对象作为参数传递给Thread类的构造器中,创建Thread类的对象 * 5.通过Thread类的对象调用start * * @author www * @creat 2022-{MONTH}-{DAY} *///1.创建一个实现Runnable接口的类c原创 2022-02-27 16:36:13 · 58 阅读 · 0 评论 -
线程的调度
package com.www.java01;/** * 线程的优先级 *1. * MAX_PRIORITY:10 * MIN_PRIORITY:1 * NORM_PRIORITY:5 *2.如何获取和设置线程的优先级 * getPriority() * setPriority(int p) *说明:高优先级的线程会抢占低优先级的执行权,但是只是从概率上,并不是一定优先执行 * * @author www * @creat 2022-{MONTH}-{DAY} */pub..原创 2022-02-27 15:28:25 · 80 阅读 · 0 评论 -
多线程相关
程序、进程、线程package com.www.java01;/** * 多线程的创建,方式一:继承于Thread类 * 1.创建一个继承于Thread类的子类 * 2.重写Thread类的run()方法----将要执行的操作声明在run方法中 * 3.创建子类对象 * 4.调用start()方法 * 例子:遍历10000以内的偶数 * @author www * @creat 2022-{MONTH}-{DAY} */public class ThreadTest{原创 2022-02-27 11:51:37 · 319 阅读 · 0 评论 -
开发团队调度软件
下面是自己写的,基本功能可以实现,但代码冗长杂乱,逻辑不够清晰,暂且放在这里,以后深入学习之后,再回过头看package com.project3.team.Domain;//员工public class Employee { protected int id; protected String name; protected int age; protected double salary; protected String job; protected String st...原创 2022-02-25 21:43:28 · 474 阅读 · 0 评论 -
异常的处理
package com.test1.java2;public class ErrorTest { public static void main(String[] args) { //Exception in thread "main" java.lang.StackOverflowError栈溢出// main(args); //Exception in thread "main" java.lang.OutOfMemoryError: Java heap space堆溢出/.原创 2022-02-24 10:46:51 · 398 阅读 · 0 评论 -
内部类学习
package com.test1.java2;//内部类/* *类A声明在类B中,A为内部类,B为外部类 * 内部类分类:成员内部类(静态、非静态)VS局部内部类(方法内、代码块内、构造器内) * 成员内部类: * 一方面是外部类的成员:1.调用外部类结构 * 一方面是一个类:1.可定义属性、方法、构造器;2.可以被final修饰,否则可以被继承;3.被abstract修饰,不能实例化 */public class InnerClass {}class Person{ .原创 2022-02-22 23:48:33 · 59 阅读 · 0 评论 -
接口Interface
package com.test1.java;public class USBTest { public static void main(String[] args) { Computer pc = new Computer(); Flash flash = new Flash(); pc.transfer(flash); }}class Computer{ public void transfer(USB usb) { usb.start(); System.ou.原创 2022-02-22 22:23:23 · 245 阅读 · 0 评论 -
抽象类与抽象方法
package com.test1.java;/* * abstract可以修饰:类、方法 * 抽象类:不能实例化(有构造器,子类实例化用) * 抽象方法:只有声明,没有方法体 * 抽象方法一定存在于抽象类中,抽象类不一定有抽象方法 * 子类重写父类(包括间接父类)所有抽象方法后,才能进行子类实例化,否则子类也变成抽象类才行 */public class AbstractTest { public static void main(String[] args) { // .原创 2022-02-22 12:18:31 · 352 阅读 · 0 评论