![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
树高万丈靠根深
小高写BUG
只问耕耘,不问收获。
展开
-
2021-3-5线程和多线程
#线程和多线程测试方向基础课,一部分就是讲java1.java(SE)多线程和网络编程 什么是性能测试?性能测试怎么做?原理:以多线程的方式,基于协议的,模拟用户场景的测试不是基于界面的(基于界面的是UI测试)2、java(EE) Servlet 、JDBC(了解开发体系)MVC(分层结构)、需要了解开发体系是怎么样的1.类是怎么封装的 属性和方法2、数据类型3.属性赋值,setter\getter、构造方法4.流引用、对象、容器多线程程序、进程、线程线程的引用场原创 2021-03-05 23:30:02 · 474 阅读 · 0 评论 -
中级题(查找子数组问题)
581. 最短无序连续子数组一、暴力解法 复制数组排序,然后找不同。时间复杂度大于O(n) 如果限制时间,那么需要由其他的思路。class Solution { public int findUnsortedSubarray(int[] nums) { int low =-1; int high = -1; int ans = 0; int len = nums.length; int[] sorted原创 2021-08-03 07:38:26 · 237 阅读 · 0 评论 -
DFS二叉树中距离为k的节点
863. 二叉树中所有距离为 K 的结点 3 / \ 5 1 / \ / \ 6 2 0 8 / \ 7 4; target = 5, k = 2;k是距离,target是节点值。res=[1,7,4]; 1.审题发现应该用dfs遍历,但是如何判断距离?怎么定位target? 从leetcode官方题解中get了HashMa原创 2021-07-28 10:06:16 · 164 阅读 · 0 评论 -
20210721查找链表共同节点
输入两个链表,找出它们的第一个公共节点。1---2---3---4 \ \ 1----5 ----4---6 / / 2---8---9---4 ;1---2---3---4 \ \ 1----5 ----4---6 / / 9---41.利用Set1.1去重 Set不保存重复元素;所以这里存ListNode(val可以重复,但Node原创 2021-07-21 09:31:09 · 216 阅读 · 0 评论 -
20210720Java删除指定链表节点与链表重组
剑指 Offer 18. 删除链表的节点这道题为easy,利用的是单项链表删除元素的方法/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode deleteNode(ListNode h原创 2021-07-20 21:38:58 · 144 阅读 · 0 评论 -
20210716矩阵搜索(深度优先遍历 加 减枝)
剑指 Offer 12. 矩阵中的路径深度优先搜索(dfs):去遍历所有的可能性PS:for循环中continue是中止本次循环。break是完全中止所有循环。1.矩阵中方向数组的使用int[] dx = {0, 1, 0, -1}, dy = {1, 0, -1, 0};//(0,1)和(1,0)和(0,-1)和(-1,0)分别对应着上下左右2.减枝u == len目的:每次dfs只招符合单词长度的步数。超过单词长度的直接返回。只有找到才会u+1;if(u == len || res原创 2021-07-16 22:25:09 · 361 阅读 · 0 评论 -
20210706List_Set_Map综合实战
1418. 点菜展示表输入:orders = [["David","3","Ceviche"],["Corina","10","Beef Burrito"],["David","3","Fried Chicken"],["Carla","5","Water"],["Carla","5","Ceviche"],["Rous","3","Ceviche"]]输出:[["Table","Beef Burrito","Ceviche","Fried Chicken","Water"],["3","0","2",原创 2021-07-06 14:44:00 · 148 阅读 · 0 评论 -
20210705leetcode栈加哈希表实战应用
726. 原子的数量输入: formula = "Mg(OH)2"输出: "H2MgO2"解释: 原子的数量是 {'H': 2, 'Mg': 1, 'O': 2}。例子2输入:formula = "K4(ON(SO3)2)2"输出:"K4N2O14S4"解释:原子的数量是 {'K': 4, 'N': 2, 'O': 14, 'S': 4}。为什么用栈这种数据结构解题? 比如上题第二个例子可能存在括号中还有括号的情况,所以先把数字之前的元素先放入栈中,等到取到数字再进行元素计数操作原创 2021-07-05 19:37:41 · 175 阅读 · 0 评论 -
20210702leetcode雪糕的最大数量
#1833. 雪糕的最大数量这道题是计数问题,中等题中的简单题输入:costs = [1,6,3,1,2,5], coins = 20输出:6解释:Tony 可以买下所有的雪糕,总价为 1 + 6 + 3 + 1 + 2 + 5 = 18 。来源:力扣(LeetCode)最重要的是不要或略边界尽量不要省略count计数器,省略会将问题复杂化!package com.leetcode.demo;import java.util.Arrays;public class MaxCount原创 2021-07-02 08:05:30 · 170 阅读 · 0 评论 -
20210701l动态规划练习题1(还可用dfs)
小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下:有 n 名玩家,所有玩家编号分别为 0 ~ n-1,其中小朋友 A 的编号为 0每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传信息的关系是单向的(比如 A 可以向 B 传信息,但 B 不能向 A 传信息)。每轮信息必须需要传递给另一个人,且信息可重复经过同一个人给定总玩家数 n,以及按 [玩家编号,对应可传递玩家编号] 关系组成的二维数组 relation。返回信息从小 A (编号 0 ) 经过 k 轮传递到编号为 n-1原创 2021-07-01 18:14:10 · 130 阅读 · 0 评论 -
分别实现UDP和TCP传输文件
TCP UDP文件传输基于TCP协议,完成客户端向服务器端发送文件,服务器端接收并保存。如D:\demo\a.txt基于UDP协议,完成客户端向服务器端发送文件,服务器端接收保存。如D:\demo\a.txtTCPpackage TCPrecive;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import原创 2021-06-30 18:51:26 · 848 阅读 · 5 评论 -
20210425leetcode897递增顺序搜索树
897. 递增顺序搜索树难度简单给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。示例 1:输入:root = [5,3,6,2,4,null,8,1,null,null,null,7,9]输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]示例 2:输入:root = [5,1,7]输出:[1,null,5,null,原创 2021-04-25 09:06:25 · 129 阅读 · 0 评论 -
20210423Servlet3注解复习
复习实现servlet接口实现五个抽象方法 其中三个与生命周期有关,init \service\destory执行顺序1.静态代码块2.构造方法3.init初始化4.service改变实例化的时机配置文件中加<load-on-startup> 把执行时间向前提servlet2需要进行web.xml配置,servlet3可以用注解servlet_class配置时是包名加类名,按住CTRL 点击包名加类名如果可以指向那个类,就配置成功了。重写service和doget原创 2021-04-24 21:54:57 · 150 阅读 · 0 评论 -
20210420StrIndexOf和字符串方法
输入:haystack = "hello", needle = "ll"输出:2class Solution { public int strStr(String haystack, String needle) { int num = haystack.indexOf(needle); return num; }}考察了java的基础知识,字符串方法String str ="abcdefg";//获取字符串长度str.length();原创 2021-04-20 09:11:38 · 172 阅读 · 0 评论 -
20210417220. 存在重复元素 III
给你一个整数数组 nums 和两个整数 k 和 t 。请你判断是否存在 两个不同下标 i 和 j,使得 abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i - j) <= k 。如果存在则返回 true,不存在返回 false。示例 1:输入:nums = [1,2,3,1], k = 3, t = 0输出:true示例 2:输入:nums = [1,0,1,1], k = 1, t = 2输出:true示例 3:输入:nums = [1,5,9,原创 2021-04-17 22:59:32 · 150 阅读 · 0 评论 -
20210411Servlet详解
文章目录不见庐山真面目,只缘身在此山中导论复习Servlet是什么?HttpServlet被创建的目的也包括简化Servlet的使用使用HTTP响应码 :报错时要知道出现了什么问题Request对象Response对象请求转发与请求重定向最后的练习总结不见庐山真面目,只缘身在此山中导论 这一部分讲的是基础,应用是很简单的,不一定把所有东西都记住,你首先需要的是了解,复习Tomcat的解压后bin—startup.bat//linux—.sh-----------PS:测试要会写简单的shell脚原创 2021-04-17 11:05:41 · 184 阅读 · 0 评论 -
20210409Tomcat和servlet的webhtml配置
复习Tips1.与代码相关的软件和插件安装路径必须是英文 2.和代码相关一切不要用中文目录 3.代码放在一个目录 4.工具放在一个目录1.Tomcat安装、配制步骤•一、安装/解压Java运行环境JDK•二、正确配置JDK环境变量JAVA_HOME•三、安装/解压Tomcat应用服务器•四、启动Tomcat服务器startup.bat linux启动startup.sh;以后调试服务器一般就在linux上进行。 以我自己的为例D:\AppDownload\apache-tom原创 2021-04-10 10:15:19 · 307 阅读 · 0 评论 -
20210405合并有序数组
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素来源:力扣(LeetCode)package com.leecode.demo;import java.util.Arrays;pu原创 2021-04-05 08:45:28 · 129 阅读 · 0 评论 -
20210314多线程死锁
复习多线程的同步和死锁1.程序、进程、线程的定义一个进程可以包含一个或多个主线程。线程可以共享资源2、线程的生命周期(线程的五个状态)new新建、start就绪、执行(等待系统的调用)、死亡(不能再转换其他的状态)、阻塞(比如加载完找不到元素就要睡3秒)3.多线程的优势减轻编写交互频繁、涉及面多的3.Java实现多线程(三种,掌握两种的方法)1.继承Thread类,重写run()2.实现Runnable接口,重写run()/* * (non-Javadoc) * @see原创 2021-04-04 10:11:49 · 147 阅读 · 0 评论 -
20210404中级题find132pattern
132 模式输入:nums = [1,2,3,4]输出:false解释:序列中不存在 132 模式的子序列输入:nums = [-1,3,2,0]输出:true解释:序列中有 3 个 132 模式的的子序列:[-1, 3, 2]、[-1, 3, 0] 和 [-1, 2, 0] 。//第一次没有通过 ,忽略了首尾相等的情况//模式匹配 怎么去寻找这个解决方法?? 找小大小 可能使用到遍历、class Solution { public boolean find132.原创 2021-04-04 09:26:11 · 195 阅读 · 0 评论 -
20210402javaEE
Web应用通过互联网对其进行访问的应用系统,B /S静态页面 服务器不对网站文件做任何处理,可理解为展示动态页面 以程序的方式动态产生响应内容;web应用的执行流程1.浏览器发送请求2.web服务器根据请求进行响应操作3.服务器将结果返回给浏览器JavaEE本身是一个标准,一个为企业分布式应用开发提供的标准平台包括的技术领域-Servlet ,JSPServlet服务器端的小程序运行在服务器上,在服务器端调用、执行–对客户端的请求进行处理–向客户端返回响应没有原创 2021-04-02 15:02:03 · 133 阅读 · 0 评论 -
20210402UDP实现QQ
复习TCP/URLUDP不面向连接的 但是高效 ,UDP不分服务器端和客户端####发送端1.创建DatagramSocket对象 ,如果不需要数据 -----快递员2.准备数据3.创建 DatagramPacket ,准备数据 -----快递4.发送5.关闭接收方1.创建DatagramSocket对象,指定端口号 -----门牌号创建空字节数组原创 2021-04-02 15:00:57 · 265 阅读 · 0 评论 -
20210402UDP实现双向通信类似QQ对话功能
package udpdemo3;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;//接收方收到信息之后,再发送信息public class Recevier3 { public static void main(String[] args原创 2021-04-02 14:46:24 · 217 阅读 · 0 评论 -
20210326TCPandUDP
##复习netstat -ano|findstr 8080找端口是不是被占用InputStream() 还需要文件输出流openStream()URLConnection openConnection()URLConnection类 getInputStream() getOutputStream()实现TCP示例1.客户端与服务器端的单次发送(注意:客户端/服务器端 不能都是先收后发)2.服务器接收多次通讯3.编程实例:聊天程序 ;import java.io.IOE原创 2021-03-31 17:28:33 · 151 阅读 · 0 评论 -
202103010多线程工厂生产实战
一:创建工厂类Factory 属性:车间类WorkShop的对象的集合worShops,仓库的容量 int capability方法:1、加工玩具方法 product:各车间同时工作(多线程,多线程需要设置名称:车间1、车间2、车间3), 根据仓库的容量平均分配给各车间需要加工玩具的数量 12个玩具,3个车间2、建造车间方法createWorkShop:向集合worShops添加一个新的车间二:车间类WorkShop 属性:车间名称方法:车间名称的setter、getter 要求:使用多线原创 2021-03-10 12:17:23 · 674 阅读 · 2 评论