自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bird-A

游于天空

  • 博客(34)
  • 收藏
  • 关注

原创 解决org.apache.catalina等jar包找不到

可能是jdk版本问题,有些包未自带,所以解决方法如下:从tomcat根目录下中的lib文件夹中选择catalina.jar和servlet-api.jar拷贝到项目文件中并引用即可。

2021-01-27 21:16:53 6562

原创 力扣-栈

20.有效的括号题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。class Solution { public boolean isValid(String s) { int length=s.length(); if(length==0){ return true

2020-11-18 22:06:10 121

原创 链表(leetcode刷题)之21.合并链表

合并链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, List

2020-11-10 22:46:02 115

原创 哈希表

哈希表哈希表是一种数据结构,使用键对值来实现快速查找!哈希表也可以当成一个缓存结构,哈希表可以由数组+链表或者数据+二叉树组成。内存结构:对于数组+链表的数据结构,数组存放的是链表头结点的引用值,链表存放的是一系列相关的信息!...

2020-11-09 21:53:14 88

原创 栈Stack

栈先进后出(FILO)的有序链表!用单向链表来模拟栈,设置栈顶结点为topNode,那么每一次增加一个新的结点,就是让这个结点的nextnode为topNode,这样就连接上了!package sparesearray;public class StackBySingleLinkedList { private int size; private StackNode topnode;//设不设置头结点都行 public StackBySingleLinkedList() { size=0;

2020-11-07 20:39:21 86

原创 链表

单链表概念:单链表就是一个结点存放元素的值和指向下一个结点的引用!分为带头结点和非带头结点单链表要实现插、删、查、改!插和删除都需要修改存放在结点的引用地址值,根据链表的数据结构可以知道查和改是需要遍历的!public class SingleLinkedList { private int size=0;//有效结点个数,不包括头结点 private int loc=0; private HeroNode begainnode= new HeroNode(-1,""); public

2020-11-06 22:45:44 69

原创 数据库连接池和多线程

package myJDBC;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class TestConnectionpool { public static void main(String[] args) { long time1=System.currentTimeMillis(); Th

2020-11-01 22:32:08 612

原创 静态变量的作用时间

静态成员变量在一个主线程中改变之后,并不影响另一个主线程中的值!首先定义一个Hero类:package myJDBC;public class Hero { public String name; public Hero(String name) { this.name=name; } @Override public String toString() { // TODO Auto-generated method stub return name; }

2020-10-31 15:35:53 198

原创 JDBC基础

Hello JDBC1.驱动数据库2.连接数据库3.创建statement4.执行SQL语句5.关闭连接(try(source)关闭)package myJDBC;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Testjdbca { public static void mai

2020-10-30 08:45:28 96

原创 【每日算法】递归

参考文献

2020-10-27 22:30:30 81

原创 图形界面基础

目录Hello Swing事件监听按钮监听键盘监听鼠标监听适配器Hello Swing初识Swing!import javax.swing.JButton;import javax.swing.JFrame;public class TestGuiA { public static void main(String[] args) { // TODO Auto-generated method stub //新建一个主窗体 JFrame j=new JFrame("lol外挂");

2020-10-14 20:32:35 289 2

原创 反射机制基础

目录获取类对象获取类对象三种方式Class.forNameHero.classnew Hero().getClass()

2020-10-12 22:28:31 343

原创 消费者和生产者模式的一个问题

代码如下:package pcmovc;import java.util.ArrayList;import java.util.Date;import java.util.List;/* * 生产者和消费者模式 * 一个线程负责生产,一个线程负责消费 * 生产和消费达到平衡状态 */public class ThreadpcA { public static void main(String[] args) { ArrayList<String> list =

2020-10-12 19:24:01 87

原创 多线程基础[Java]

目录进程和线程线程的创建方法线程的运行状态线程的sleep,interrupt和终止线程多线程并发什么时候开始抢夺时间片呢进程和线程进程是一个应用程序;线程是应用程序中的执行单元。一个进程可以由多个线程,最基本的包括主线程和垃圾回收线程。一个线程占一个栈空间,不同栈空间相互独立,互不共享,堆和方法区内存是对这些栈是共享的。JVM内存结构所以可以看出,main函数(主线程)结束不代表线程结束,因为还有其它分支线程进行弹栈压栈操作。线程的创建方法1.创建一个Thread类的子类,并重写run()方

2020-10-07 18:10:12 257

原创 Java中的静态方法与非静态方法的区别、以及和继承类之间的关系

静态方法和非静态方法静态方法在类加载(第一次创建一个实例或者调用静态方法会发生类加载)的时候就被初始化了,内存在方法区中被开辟。访问方式:类.静态方法或者类对象.静态方法。静态方法可以通过类对象.静态方法这种引用方式,但是其在执行上与具体的类对象是无关的。静态方法可以看成是不依赖其它类实例,这可以看成是一个面向过程的函数。从上面静态方法的特性就应该可以看出,静态方法只可以访问静态属性,无法访问非静态成员变量,非静态成员变量是依赖于具体的对象的,不同类的实例化(具体的对象)的非静态成员变量是不同的。所

2020-10-07 12:57:43 478

原创 Lambda表达式

Lambda表达式的作用是简化代码!在Lambda表达式中最重要的就是参数和函数返回值(或者函数体)。下面是几种方法的引用方式。1.引用静态方法静态方法public static boolean testHero(Hero h) { return h.hp>100 && h.damage<50;} Lambda表达式:filter(heros, h->h.hp>100 && h.damage<50); 在Lambda表达式

2020-10-06 11:53:42 98

原创 正则表达式

正则表达式的详细用法:正则表达式正则表达式实例一:抓取网页中的email地址(爬虫)实例2: 代码统计小程序实例一:抓取网页中的email地址(爬虫)假设我们手头上有一些优质的资源, 打算分享给网友, 于是便到贴吧上发出一个留邮箱发资源的帖子. 没想到网友热情高涨, 留下了近百个邮箱. 但逐个复制发送太累了, 我们考虑用程序实现.这里不展开讲发邮件部分, 重点应用已经学到的正则表达式从网页中截取所有的邮箱地址.首先获取一个帖子的html代码随便找了一个, 点击跳转, 在浏览器中点击右键保存htm

2020-10-06 11:03:55 151

原创 byte、char和String之间的关系!

什么是字节byte字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符 。一个位节存储8位无符号数,储存的数值范围为0-255。如同字元一样,字节型态的变数只需要用一个位元组(8位元)的内存空间储存------百度百科一个字节范围为00000000到11111111,就是内存中八位二进制码。什么是字符char这个比较好理解,比如用单引号引起的都是字符,‘a’,'2’等等,字符是指计算机中的符号。三者练习和区别byte表征存储信息,表示内存

2020-09-24 21:41:27 1567

原创 Java建立输出流的同时会把文件清空

首先给出一个结论:输出流建立的时候会把文件之前的内容清空,加上true会保留之前的内容。测试代码如下://缓存流输出和输入 public static void ceshiA(String filepath) { File file=new File(filepath); try(BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(file)); BufferedInputStream bis=n

2020-09-24 15:22:24 1767

原创 I/O的一些小练习(见注释)

学习了两周的I/O知识,感觉有点迷糊,在这里做一个笔记吧!方便以后自己查看。

2020-09-16 18:46:32 154

原创 【JAVA】数据结构与算法

第一章:基本概念第二章:表、栈和队列

2020-09-16 09:21:40 129

原创 求文件长度的时候的计算效率问题

file.length()的计算时间可能很大!问题来源:题目:练习合并文件的第一种解法在这个题目中,运算时间大约为3000ms,但是通过一个小改动,计算时间就变成了20ms!为了明白这一点,看如下的代码:public static char[] filereadtobyte(File file) throws IOException { FileInputStream filein=new FileInputStream(file); byte[] bytes=new byte[(int)

2020-09-10 15:10:22 286

原创 字节数组转换为字符串会造成数据损失的一些解释

StringBuffer在转换为字节数组的时候带来的一些问题

2020-09-09 09:36:47 3174 1

原创 Java对象管理、赋值语句和值传递的一些理解

Java关于赋值=的理解首先明确,java中的赋值是把右边所管理的对象交给左边管理,也就是让左右两边去管理同一个对象(我觉得:把引用地址传递到了左边)。首先看一个例子:Hero hero1=new Hero("hero11");Hero hero2;Hero hero3=new Hero("hero33");hero2=hero1;//1//hero1=new Hero("d");hero1=hero3;//2hero3=new Hero("dd");//3System.out.print

2020-09-01 22:48:42 222

原创 HOW2J的JAVASE刷题一

HOW2J一级目录二级目录三级目录容器(比较器)自定义顺序的TreeSet一级目录二级目录三级目录容器(比较器)自定义顺序的TreeSet题目:默认情况下,TreeSet中的数据是从小到大排序的,不过TreeSet的构造方法支持传入一个Comparator,使其倒序输出:Comparator<? super Integer> c; private ArrayList<Integer> list=new ArrayList<>(); public Tr

2020-08-30 20:39:40 923

原创 泛型擦除和类型擦除

泛型擦除????‍????首先理解什么是类型擦除:Java的泛型基本上都是在编译器这个层次上实现的,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程成为类型擦除。????在编译代码阶段,ArrayList<H>和ArrayList<D>,编译器只认识ArrayList,而不认识后面的泛型信息。JVM看到的只是List,而由泛型附加的类型信息对JVM是看不到的。Java编译器会在编译时尽可能的发现可能出错的地方,但是仍然无法

2020-08-30 12:14:41 232 1

原创 ?super和?extends对比

?super和?extends对比public static void main(String[] args) { ArrayList<Hero> o=new ArrayList<Hero>(); ArrayList<? super ADHero> heros=o; o.add(new Hero("Hero")); o.add(new APHero("AP")); heros.add(new ADHero("AD")); Syste

2020-08-29 22:25:15 83

原创 泛型类型擦除的一些小问题

关于getclass的一些判断首先观察一段代码 String g="ss"; List adheros=new ArrayList(); adheros.add(2); adheros.add(new String("dsa")); adheros.add(g); adheros.add(new ADHero("hero 1")); ArrayList<? extends Hero> nheros=(ArrayList<? extends Hero>) adheros

2020-08-29 16:35:03 163

原创 用HashSet检查重复字符串

用HashSet检查重复字符串package collection;import java.util.HashSet;import java.util.Random;public class Testhashset { //获取任意长度的字符串 public static String getRandomString(int length) { String str=""; for(char i='0';i<='9';i++) { str+=i; } for(char

2020-08-28 20:29:23 492

原创 贪心算法,字典序问题。1.判断是字符串组成元素是否相同;2.随机生成指定长度的字符串;3.字典序排序;4.二叉树排序(最小自然排序)

贪心算法,字典序问题。1.判断是字符串组成元素是否相同;2.随机生成指定长度的字符串;3.字典序排序;4.二叉树排序(最小自然排序)package solution;import java.util.HashMap;import java.util.Map;public class Tanxin { Tanxin left; Tanxin right; char value; //字典序问题 //二叉树排序字典序(最小自然排序);用中序遍历可以得出最小自然排序 public vo

2020-08-28 20:24:55 182

原创 英雄二叉树

英雄二叉树:设计一个Hero二叉树,HeroNode.可以向这个英雄二叉树插入不同的Hero对象,并且按照Hero的血量倒排序。随机生成10个Hero对象,每个Hero对象都有不同的血量值,插入这个HeroNode后,把排序结果打印出来。package set;import java.util.ArrayList;import java.util.List;public class HeroNode { public HeroNode leftNode; public HeroNode ri

2020-08-13 22:35:11 142

原创 ArrayList中contain()、indexOf(),以及==和equals,toArray()和toArray(T() a)的解析。Sysop可以直接输出

ArrayList中contain()、indexOf(),以及==和equals,toArray()和toArray(T() a)的解析。class Value{ String str; public Value(String str) { this.str=str; } @Override public String toString() { // TODO Auto-generated method stub return str; } }public class

2020-08-13 00:01:32 178

原创 准备一个长度是9的日期数组 使用1970年-2000年之间的随机日期初始化该数组 按照这些日期的时间进行升序排序 比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:

准备一个长度是9的日期数组使用1970年-2000年之间的随机日期初始化该数组按照这些日期的时间进行升序排序比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:23 前面,因为它的时间更小,虽然日期更大public class Ceshi { // 生成随机时间 public Date gettime() { Date time = new Date(); long day = 24 * 60 * 60 * 1000; long mills = (200

2020-08-11 23:58:36 371

原创 借助随机数,创建一个 * 从任意年.1.1 00:00:00 * 到 任意年.12.31 23:59:59 之间的随机日期

借助随机数,创建一个 * 从任意年.1.1 00:00:00 * 到 任意年.12.31 23:59:59 之间的随机日期public class Ceshi { public static void main(String[] args) { //输入任意年份 long yearend=1976; long day=24*60*60*1000; int p;//是否为闰年 long duomil=(yearend-1970)/4*day; if(((yearend-1

2020-08-10 18:27:29 237

空空如也

空空如也

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

TA关注的人

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