Java基础
数据结构预算法,HOW2J,以及看书的一些笔记
A-bird
拖鞋
展开
-
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 · 95 阅读 · 0 评论 -
图形界面基础
目录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 · 280 阅读 · 2 评论 -
反射机制基础
目录获取类对象获取类对象三种方式Class.forNameHero.classnew Hero().getClass()原创 2020-10-12 22:28:31 · 342 阅读 · 0 评论 -
多线程基础[Java]
目录进程和线程线程的创建方法线程的运行状态线程的sleep,interrupt和终止线程多线程并发什么时候开始抢夺时间片呢进程和线程进程是一个应用程序;线程是应用程序中的执行单元。一个进程可以由多个线程,最基本的包括主线程和垃圾回收线程。一个线程占一个栈空间,不同栈空间相互独立,互不共享,堆和方法区内存是对这些栈是共享的。JVM内存结构所以可以看出,main函数(主线程)结束不代表线程结束,因为还有其它分支线程进行弹栈压栈操作。线程的创建方法1.创建一个Thread类的子类,并重写run()方原创 2020-10-07 18:10:12 · 252 阅读 · 0 评论 -
Java中的静态方法与非静态方法的区别、以及和继承类之间的关系
静态方法和非静态方法静态方法在类加载(第一次创建一个实例或者调用静态方法会发生类加载)的时候就被初始化了,内存在方法区中被开辟。访问方式:类.静态方法或者类对象.静态方法。静态方法可以通过类对象.静态方法这种引用方式,但是其在执行上与具体的类对象是无关的。静态方法可以看成是不依赖其它类实例,这可以看成是一个面向过程的函数。从上面静态方法的特性就应该可以看出,静态方法只可以访问静态属性,无法访问非静态成员变量,非静态成员变量是依赖于具体的对象的,不同类的实例化(具体的对象)的非静态成员变量是不同的。所原创 2020-10-07 12:57:43 · 467 阅读 · 0 评论 -
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 · 96 阅读 · 0 评论 -
正则表达式
正则表达式的详细用法:正则表达式正则表达式实例一:抓取网页中的email地址(爬虫)实例2: 代码统计小程序实例一:抓取网页中的email地址(爬虫)假设我们手头上有一些优质的资源, 打算分享给网友, 于是便到贴吧上发出一个留邮箱发资源的帖子. 没想到网友热情高涨, 留下了近百个邮箱. 但逐个复制发送太累了, 我们考虑用程序实现.这里不展开讲发邮件部分, 重点应用已经学到的正则表达式从网页中截取所有的邮箱地址.首先获取一个帖子的html代码随便找了一个, 点击跳转, 在浏览器中点击右键保存htm原创 2020-10-06 11:03:55 · 147 阅读 · 0 评论 -
byte、char和String之间的关系!
什么是字节byte字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符 。一个位节存储8位无符号数,储存的数值范围为0-255。如同字元一样,字节型态的变数只需要用一个位元组(8位元)的内存空间储存------百度百科一个字节范围为00000000到11111111,就是内存中八位二进制码。什么是字符char这个比较好理解,比如用单引号引起的都是字符,‘a’,'2’等等,字符是指计算机中的符号。三者练习和区别byte表征存储信息,表示内存原创 2020-09-24 21:41:27 · 1539 阅读 · 0 评论 -
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 · 219 阅读 · 0 评论 -
?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 · 80 阅读 · 0 评论 -
I/O的一些小练习(见注释)
学习了两周的I/O知识,感觉有点迷糊,在这里做一个笔记吧!方便以后自己查看。原创 2020-09-16 18:46:32 · 151 阅读 · 0 评论 -
求文件长度的时候的计算效率问题
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 · 270 阅读 · 0 评论 -
字节数组转换为字符串会造成数据损失的一些解释
StringBuffer在转换为字节数组的时候带来的一些问题原创 2020-09-09 09:36:47 · 3130 阅读 · 1 评论 -
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 · 916 阅读 · 0 评论 -
泛型擦除和类型擦除
泛型擦除????????首先理解什么是类型擦除:Java的泛型基本上都是在编译器这个层次上实现的,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程成为类型擦除。????在编译代码阶段,ArrayList<H>和ArrayList<D>,编译器只认识ArrayList,而不认识后面的泛型信息。JVM看到的只是List,而由泛型附加的类型信息对JVM是看不到的。Java编译器会在编译时尽可能的发现可能出错的地方,但是仍然无法原创 2020-08-30 12:14:41 · 228 阅读 · 1 评论 -
泛型类型擦除的一些小问题
关于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 · 162 阅读 · 0 评论 -
用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 · 482 阅读 · 0 评论 -
贪心算法,字典序问题。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 · 179 阅读 · 0 评论 -
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 · 172 阅读 · 0 评论 -
准备一个长度是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 · 363 阅读 · 0 评论