自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 关于leetcode第二十题有效的括号

这是官方给出的题目描述其实看到这道题,很容易就能想到使用stack来解决。一旦想到这一点,问题就变得很容易解决了class Solution { public boolean isValid(String s) { Stack<Character> stack=new Stack<Character>(); for(char c:s.toCharArray()){ if(c=='('){

2020-11-07 21:19:11 178 1

原创 web项目踢出用户登陆操作

@WebServlet("/TickOurSvl")public class TickOurSvl extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public TickOurSvl() { super(); // TODO Auto-generat

2020-11-05 21:50:46 562 3

原创 异步处理日志

/** * 把所有的info日志,采用异步模式来处理(环境日志文件的IO阻塞) */public class LogTask implements Runnable{ private static BlockingQueue<String> queue; static { queue=new LinkedBlockingQueue<String>(); } @Override public void run() { // TODO Auto-generat

2020-11-05 15:52:46 409

转载 对称的二叉树

剑指-- 对称的二叉树这个和leetoce的101题是一样的,所以笔记也是和101题是一样的。1,题目:在这里插入图片描述2,思路:方法一:递归:如果同时满足下面的条件,两个树互为镜像:1.它们的两个根结点具有相同的值2.每个树的右子树都与另一个树的左子树镜像对称我们可以实现这样一个递归函数,通过「同步移动」两个指针的方法来遍历这棵树,p 指针和 q 指针一开始都指向这棵树的根,随后 p 右移时,q 左移,p左移时,q 右移。每次检查当前 p 和 q 节点的值是否相等,如果相等再判断左右

2020-11-04 22:04:11 124 1

原创 使用栈进行括号配对

前段时间在面试的过程中被问到如何判断括号的配对问题。当时只说了大致的思路,今天闲下来实现一下package dataStructure;import java.util.Scanner;public class IsMatch { static boolean isMatch(LLStack stack) { System.out.println("请输入表达式:"); Scanner scanner = new Scanner(System.in); String curStri

2020-11-04 21:57:31 100

原创 web项目实现异步处理请求

实现异步处理请求package com.icss.action;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.AsyncContext;import javax.servlet.AsyncEvent;import javax.servlet.AsyncListener;import javax.servlet.ServletException;import javax.servlet.

2020-11-04 21:51:35 420 1

原创 基于javaSwing实现的1024小游戏

import javax.swing.*;import java.awt.*;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List;public class Game { //用于储存颜色的实体类 pri

2020-11-04 21:49:02 766

原创 web项目实现自动登录

Mainservlet代码protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //判断客户端请求的cookide中是否携带用户信息 Cookie[] cookies=request.getCookies(); if(cookies!=n

2020-11-04 21:34:26 1112 1

原创 url编程

1.URL(Uniform Resource Locator)的理解:统一资源定位符,对应着互联网的某一资源地址2.URL的5个基本结构:http://localhost:8080/examples/beauty.jpg?username=Tom协议 主机名 端口号 资源地址 参数列表3.如何实例化:URL url = new URL(“http://localhost:8080/examples/beauty.jpg?username=Tom”);4.常用

2020-10-12 21:43:28 157

原创 udp网络编程

代码示例://发送端@Testpublic void sender() throws IOException { DatagramSocket socket = new DatagramSocket(); String str = "我是UDP方式发送的导弹"; byte[] data = str.getBytes(); InetAddress inet = InetAddress.getLocalHost(); DatagramPacket pack

2020-10-12 21:42:03 114

原创 TCP网络编程

//客户端 @Test public void client() { Socket socket = null; OutputStream os = null; try { //1.创建Socket对象,指明服务器端的ip和端口号 InetAddress inet = InetAddress.getByName("192.168.14.100"); socket = ne

2020-10-12 21:40:56 109 1

原创 InetAddress类的使用

一、实现网络通信需要解决的两个问题1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用2.找到主机后如何可靠高效地进行数据传输二、网络通信的两个要素:1.对应问题一:IP和端口号2.对应问题二:提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)三、通信要素一:IP和端口号1.IP的理解IP:唯一的标识 Internet 上的计算机(通信实体)在Java中使用InetAddress类代表IPIP分类:IPv4 和 IPv6 ; 万维网

2020-10-12 21:33:29 318 1

原创 leetcode第167题

class Solution { public int[] twoSum(int[] numbers, int target) { int num[]=new int[2]; for(int i=0;i<numbers.length;i++){ for(int j=i+1;j<numbers.length;j++){ if(numbers[i]+numbers[j]==target){ .

2020-09-19 19:50:50 130

原创 输入输出流 打印流 数据流等

1. 标准的输入输出流:System.in:标准的输入流,默认从键盘输入System.out:标准的输出流,默认从控制台输出修改默认的输入和输出行为:System类的setIn(InputStream is) / setOut(PrintStream ps)方式重新指定输入和输出的流。2. 打印流:PrintStream 和PrintWriter说明:提供了一系列重载的print()和println()方法,用于多种数据类型的输出System.out返回的是PrintStream的实例3

2020-09-18 14:15:52 217

原创 Collection接口中的set接口

1. 存储的数据特点:无序的、不可重复的元素具体的:以HashSet为例说明:无序性:不等于随机性。存储的数据在底层数组中并非照数组索引的顺序添加,而是根据数据的哈希值决定的。不可重复性:保证添加的元素照equals()判断时,不能返回true.即:相同的元素只能添加一个。2. 元素添加过程:(以HashSet为例)我们向HashSet中添加元素a,首先调用元素a所在类的hashCode()方法,计算元素a的哈希值,此哈希值接着通过某种算法计算出在HashSet底层数组中的存放位置(即为:

2020-09-18 14:14:12 259

原创 对象流的使用

1.对象流:ObjectInputStream 和 ObjectOutputStream2.作用:ObjectOutputStream:内存中的对象—>存储中的文件、通过网络传输出去:序列化过程ObjectInputStream:存储中的文件、通过网络接收过来 —>内存中的对象:反序列化过程3.对象的序列化机制:对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。//当其它程序获取

2020-09-18 14:09:23 476

原创 节点流(文件流)和缓冲流和转换流以及常见编码集

------------节点流**************1.FileReader/FileWriter的使用:1.1 FileReader的使用说明点:read()的理解:返回读入的一个字符。如果达到文件末尾,返回-1异常的处理:为了保证流资源一定可以执行关闭操作。需要使用try-catch-finally处理读入的文件一定要存在,否则就会报FileNotFoundException。@Test public void testFileReader1() { F

2020-09-18 12:20:23 271

原创 IO流概述

1.流的分类1.操作数据单位:字节流、字符流2.数据的流向:输入流、输出流3.流的角色:节点流、处理流图示:2.流的体系结构说明:红框对应的是IO流中的4个抽象基类。蓝框的流需要大家重点关注。3.重点说明的几个流结构4.输入、输出的标准化过程4.1 输入过程① 创建File类的对象,指明读取的数据的来源。(要求此文件一定要存在)② 创建相应的输入流,将File类的对象作为参数,传入流的构造器中③ 具体的读入过程:创建相应的byte[] 或 char[]。④ 关闭流资源

2020-09-18 12:08:36 107

原创 File类的应用

1.File类的理解File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)File类声明在java.io包下File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的"终点".2.File的实例化2.1 常用构造器File(String filePath)File(String parentPath

2020-09-18 12:04:23 223 1

原创 1.通配符

1.通配符的使用通配符的使用 通配符:? 类A是类B的父类,G<A>和G<B>是没关系的,二者共同的父类是:G<?>@Test public void test3(){ List<Object> list1 = null; List<String> list2 = null; List<?> list = null; list = list1;

2020-09-18 11:23:32 227 1

原创 自定义泛型类,泛型接口,泛型方法,泛型在继承上的体现

【Order.java】public class Order<T> { String orderName; int orderId; //类的内部结构就可以使用类的泛型 T orderT; public Order(){ //编译不通过// T[] arr = new T[10]; //编译通过 T[] arr = (T[]) new Object[10]; } p

2020-09-18 11:21:06 271

原创 泛型概念及泛型在集合中的使用

1.泛型的概念所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量、创建对象时确定(即传入实际的类型参数,也称为类型实参)。2.泛型的引入背景集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存

2020-09-18 11:12:20 387

原创 Map接口

双列集合框架:Map1.常用实现类结构2.存储结构的理解:Map中的key:无序的、不可重复的,使用Set存储所的key —> key所在的类要重写equals()和hashCode() (以HashMap为例)Map中的value:无序的、可重复的,使用Collection存储所的value —>value所在的类要重写equals()一个键值对:key-value构成了一个Entry对象。Map中的entry:无序的、不可重复的,使用Set存储所的entry图示:3

2020-09-18 11:07:23 125 1

原创 Collection子接口:List接口

1. 存储的数据特点:存储有序的、可重复的数据。2. 常用方法:(记住)增:add(Object obj)删:remove(int index) / remove(Object obj)改:set(int index, Object ele)查:get(int index)插:add(int index, Object ele)长度:size()遍历:① Iterator迭代器方式② 增强for循环③ 普通的循环3. 常用实现类:4. 源码分析(难点)4.1 ArrayList的

2020-09-17 18:52:06 70

原创 Iterator接口与foreeach循环

1.遍历Collection的两种方式:① 使用迭代器Iterator ② foreach循环(或增强for循环)2.java.utils包下定义的迭代器接口:Iterator2.1说明:Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素。GOF给迭代器模式的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式,就是为容器而生。2.2作用:遍历集合Collectiton元素2.3如何获取

2020-09-17 18:44:48 160

原创 Collection接口

1.单列集合框架结构对应图示:2.Collection接口常用方法:add(Object obj),addAll(Collection coll),size(),isEmpty(),clear();contains(Object obj),containsAll(Collection coll),remove(Object obj),removeAll(Collection coll),retainsAll(Collection coll),equals(Object obj);hasCode

2020-09-17 18:39:39 115

原创 数组与集合

1. 集合与数组存储数据概述:集合、数组都是对多个数据进行存储操作的结构,简称Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)2. 数组存储的特点:一旦初始化以后,其长度就确定了。数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。比如:String[] arr;int[] arr1;Object[] arr2;3. 数组存储的弊端:> 一旦初始化以后,其长度就不可修改。> 数组中

2020-09-17 18:35:44 98

原创 注解的使用

1. 注解的理解① jdk 5.0 新增的功能*② Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理。通过使用 Annotation,程序员可以在不改变原逻辑的情况下, 在源文件中嵌入一些补充信息。③在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE/Android中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗 代码和XML配置等。框架 =

2020-09-17 17:13:12 224

原创 枚举类的使用

1. 枚举类的说明:1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类2.当需要定义一组常量时,强烈建议使用枚举类3.如果枚举类中只一个对象,则可以作为单例模式的实现方式。2. 如何自定义枚举类?步骤://自定义枚举类class Season{ //1.声明Season对象的属性:private final修饰 private final String seasonName; private final String seasonDesc; /

2020-09-17 17:10:20 173

原创 java比较器

1.Java比较器的使用背景:Java中的对象,正常情况下,只能进行比较:== 或 != 。不能使用 > 或 < 的但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。如何实现?使用两个接口中的任何一个:Comparable 或 Comparator2.自然排序:使用Comparable接口2.1 说明1.像String、包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的方式。2.像String、包

2020-09-17 17:06:34 64

原创 jdk8之前的日期API

1.获取系统当前时间:System类中的currentTimeMillis()long time = System.currentTimeMillis();//返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。//称为时间戳System.out.println(time);2. java.util.Date类与java.sql.Date类/*java.util.Date类|—java.sql.Date类1.两个构造器的使用>构造器一:Date():创建一个对应

2020-09-17 17:04:03 103

原创 StringBuffer、StringBuilder

*1.String、StringBuffer、StringBuilder三者的对比String:不可变的字符序列;底层使用char[]存储StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的,效率高;底层使用char[]存储*2.StringBuffer与StringBuilder的内存解析 以StringBuffer为例String str = new String();//char[]

2020-09-17 14:25:46 140

原创 java常用类String

1.概述String:字符串,使用一对""引起来表示。1.String声明为final的,不可被继承2.String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大小3.String内部定义了final char[] value用于存储字符串数据4.通过字面量的方式(区别于new给一个字符串赋值,此时的字符串值声明在字符串常量池中)。5.字符串常量池中是不会存储相同内容(使用String类的equals()比较,返回tru

2020-09-17 12:23:50 66

原创 解决线程安全问题的两种方法

在java中,我们采用同步机制,来解决线程安全问题*方式一:同步代码块synchronized同步监视器(){//需要同步的代码}说明:1.操作共享数据的代码,即为需要被同步的代码,–》不能包含代码多了,也不能包含代码少了2.共享数据:多个线程共同操作的变量。比如:ticket就是共享数据3.同步监视器,俗称:锁。任何一个类的对象,都可以充当锁要求:多个线程必须共用一把锁补充:在实现Runnable接口创建线程的方式中,我们可以考虑使用this充当同步监视器方式二同步方法如果操

2020-07-25 15:44:35 277

原创 Thread中常用的方法

测试Thread中常用方法1.start():启动当前线程;调用当前线程的run()2.run(): 通常 需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中3.currenThread();静态方法,返回执行当前代码的线程4.getName(),获取当前线程的名字5.setName(),设置当前线程的名字6.yield():释放当前cpu的执行权7.join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才会结束阻塞状

2020-07-25 14:44:48 151

原创 多线程的创建两种创建方式和比较

多线程的创建:继承于Thread类1.创建一个继承于Thread的子类2.重写Thread类的run()–>将此线程执行的操作 声明在run()中3.创建Thread类的子类的对象4.通过此对象调用start();class MyThread extends Thread { //2. 重写Thread类的run() @Override public void run() { for (int i = 0; i < 100; i++)

2020-07-25 13:52:59 113

原创 4种匿名子类

package com.atguigu.java;/* * 抽象类的匿名子类 * */public class PersonTest { public static void main(String[] args) { method(new Student());//匿名对象 Worker worker = new Worker(); method1(wo...

2020-04-14 21:31:03 680

原创 异常处理的知识点

一、异常体系结构*java.lang.Throwable |-----java.lang.Error:一般不编写针对性的代码进行处理。 |-----java.lang.Exception:可以进行异常的处理 |------编译时异常(checked) |-----IOException |-----FileNotFoundException...

2020-04-12 21:03:03 169

原创 接口和抽象的实现

1.接口的使用2.java中,接口和类是并列的两个结构3.如何定义接口:定义接口中的成员 3.1:在JDK7及以前:只能定义全局常量和抽象方法 》全局变量:public static final的,单数书写时,可以省略 》抽象方法 public abstract的 3.2:JDK8;除了定义全局常量和抽象方法之外,还可以定义静态方法...

2020-04-12 20:59:33 234

原创 java中static关键字的概念

static关键字的使用*1.static:静态的2.static可以用来修饰:属性、方法、代码块、内部类3.使用static修饰属性:静态变量(或类变量) 3.1 属性,按是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量) 实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中的 ...

2020-04-12 20:58:12 169 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除