![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
zy不迷路
我是一个小菜鸟
展开
-
俄罗斯方块游戏代码
/*俄罗斯方块游戏java代码这里由五个类组成,每个类一个文件,放在同一文件夹底下,运行ErsBlocksGame文件即可*/ import javax.swing.*;import java.awt.*;import java.awt.event.*; /** * 游戏主类,继承自JFrame类,负责游戏的全局控制。 * 内含 * 1, 一个G...原创 2020-01-03 11:44:19 · 1674 阅读 · 0 评论 -
java中文件的相关操作总结
首先回顾冯诺依曼体系:输入 程序 输出键盘 屏幕文件 文件(硬盘)网络 网络1.如何从Input中把数据读到进程中来2.如何把数据输出到Output去程序设计中的分层问题1.继承/实现2.操作系统3.界面–操作–数据存储1.输入源可能很...原创 2019-11-29 20:25:58 · 328 阅读 · 0 评论 -
多线程
CPUcpu:中央处理器,对数据进行计算,指挥电脑中的软件和硬件干活cpu的分类: AMD Inter线程线程属于进程是进程中的一个执行单元,负责程序的执行多线程的好处:1.效率高2.多个线程之间互不影响线程调度:分时调度:所有线程轮流使用CPU,平均分配每个线程占用cpu的a时间强扎实调度:如果线程的优先级相同,那么会随随机选择一个(线程随机性),java使用的为抢占式调...原创 2019-11-09 18:56:14 · 78 阅读 · 0 评论 -
异常(受查异常,非受查异常)
2.异常: 1.作用 2.语法 1.抛出异常的语法 throw异常类型的对象 2.try - catch finally try{可能发生异常的操作} catch(异常类型 a){} finally{} 3.定义异常(定义一个类,全部来自Throwable接口(父类)下面的) ...原创 2019-11-05 18:34:03 · 358 阅读 · 0 评论 -
MySQL基本语法总结
数据库的创建及其操作1.创建数据库:语法:create database 数据库名;2.显示数据库:语法:show databases ;//显示当前有的数据库3.使用数据库:语法:use 数据库名;4.删除数据库:语法:drop database 数据库名:表的创建及其操作1.表的创建:语法:CREATE TABLE table_name (field1 ...原创 2019-10-28 17:26:51 · 97 阅读 · 0 评论 -
Java集合框架
import java.util.ArrayList;import java.util.Collection;/* JAVASE提供了满足各种需求的API(类和接口) 了解继承与接口操作架构 */public class DemoAPI { public static void main(String[] args) { //创建集合对象,可以使用对象 ...原创 2019-10-23 14:59:20 · 94 阅读 · 0 评论 -
StringBuilder类小结
StringBuilder类:字符串缓冲区public class StringDemo { /* StringBuilder类:字符串缓冲区 字符串是常量,他们的值在创建之后就不能更改,字符串的底层是一个被final修饰的数组,不能改变,是一个常量 进行字符串的额相加,内存中就会有多个字符串,占用空间,效率低下 String s="a"+"b"+"c"...原创 2019-10-23 11:25:15 · 159 阅读 · 0 评论 -
二分查找
首先要确定查找的区间:如下图:public class BinarySearch { int binarySearch(int array[],int size,int value){ int left=0; int right=size; while(left<right){ int m...原创 2019-10-18 16:20:50 · 130 阅读 · 0 评论 -
冒泡排序
冒泡排序:首先要确定比较的区间:对于黑色箭头来说比较的区间是[0,size-2-i],对于 绿色箭头来说比较的区间是[1,size-1-i]也可以写成黑色:[0,size-1-i),绿色:[1,size-i)public class BubbleSort { void BubbleSort(int array[],int size){ int isSorted;...原创 2019-10-18 16:04:01 · 69 阅读 · 0 评论 -
Map和Set的使用
自定义类型作为TreeMap的K自定义类型作为TreeSet的E要求:1.类型是Comparable的2.构造时传入Comparator泛型中的父子类型(重要)MyArrayList 不是 MyArrayList的父类型MyArrayList 也不是 MyArrayList的父类型需要使用通配符来确定父子类型MyArrayList<?> 是 MyyArrayList&l...原创 2019-10-13 14:13:33 · 117 阅读 · 0 评论 -
对象的向上转型和向下转型
1.对象的向上转型,其实就是多态写法: 格式:父类名称 对象名 = new 子类名称(); Animal animal = new Cat(); ...原创 2019-10-12 17:18:59 · 244 阅读 · 0 评论 -
多态的内容小结
多态中成员变量及成员方法的使用特点面向对象三大特征:封装性,继承性,多态性extends 继承或者 implements实现 是多态性的前提左父右子就是多态代码当中体现多态 ,其实就是一句话,父类引用指向子类对象格式:父类名称 对象=new 子类名称();【左父右子】或者:接口名称 对象名 =new 实现类名称();访问成员变量变量的两种方式:1.直接通过对象名称访问...原创 2019-10-12 16:37:42 · 113 阅读 · 0 评论 -
接口的内容小结
在Java 9+版本中,接口的内容可以有:1.成员变量其实是常量,格式:public static final 数据类型 常量名称=数据值;注意:常量必须进行赋值。而且一旦赋值不能改变,常量名称完全大写,用下划线进行分割2.接口中最重要的就是抽象方法,格式:public abstract 返回值类型 方法名称(参数列表);public 和 abstract都是可以省略的注意:实现...原创 2019-10-12 15:45:39 · 117 阅读 · 0 评论 -
顺序表的增、删、查、改
用java实现顺序表,首先来说一下什么是顺序表,顺序表是物理地址相邻的,看起来像是数组的定义,不过,,顺序表和数组也有不同。顺序表需要的不只是一个能存放一排数据的空间,它需要的是,这个空间可以变动大小,能够实际地得到当前被利用的情况,可以被外界简单的插入,删除等等操作,这是一个固定的数组所不能做到的。//顺序表的元素类型intpublic class MyArrayList { //...原创 2019-09-17 16:15:47 · 124 阅读 · 0 评论 -
二叉树的前中后序遍历
所谓三种不同的顺序:区别在于根节点遍历的时机不同。前序遍历:根左右(根节点在最前面)中序遍历:左根右(根节点在中间)后序遍历:左右根(根节点在最后)import java.util.*;public class BinaryTree { private static class Node{ private char val; private...原创 2019-09-17 16:23:15 · 83 阅读 · 0 评论 -
二叉树的层序遍历
二叉树的前中后序遍历和层序遍历对应深度优先和广度优先,深度优先就像前,中,后序一样一直往下走,直到走不下去,广度优先则是一层一层的走,按二叉树从上到下,从左到右依次打印每个节点中存储的数据。/*1.层序遍历及其变形题 2.前中后序的非递归写法*/ //层序遍历可以认为是二叉树的广度优先遍历(队列) public static LevelOrder{ private static...原创 2019-09-20 19:11:04 · 76 阅读 · 0 评论 -
删除链表中所有值为val的节点
public class Node { int val; Node next=null; Node(int val){ this.val=val; this.next=null; } public String toString(){ return String.format("Node(%d)",va...原创 2019-09-16 16:15:43 · 164 阅读 · 0 评论 -
单向链表的尾删
链表的尾删依然分为空链表和非空链表,对于空链表来说,链表中没有节点无法删除,所以直接返回null,对于非空链表,要实现链表的尾删就要找到倒数第二个节点,让倒数第二个节点的next指向null,这样就实现了删除最后一个节点,最后返回链表的头节点head.public class Node { int val; Node next=null; Node(int val)...原创 2019-09-16 13:56:05 · 947 阅读 · 0 评论 -
单向链表的头删
链表的头删分为空链表和非空链表两种情况,对于空链表,链表中一个节点都没有,所以无法删除,返回null,对于非空链表,头删就是让head(头节点)指向head的下一个节点,这样原来的头节点就被删除,此时head指向的节点就是删除原来头节点之后的头节点,直接返回现在的head即可。public class Node { int val; Node next=null; N...原创 2019-09-16 13:36:15 · 341 阅读 · 0 评论 -
Java对象的比较
1.==和equals的区别:等号表示的是两个引用是否指向同一个对象。p.equals(q)表示的是p指向的对象和q指向的对象是否语义相等。2.关于对象值大于,等于,小于的比较—基于自然顺序。package demo2;import java.util.Comparator; class PersonNameComparator03 implements Comparator&l...原创 2019-10-07 22:32:55 · 83 阅读 · 0 评论 -
单向链表的尾插
实现一个单向链表的尾插,首先也是要对原始链表进行判断,分情况,对于空链表来说,尾插就直接返回node,如果是非空链表,就要通过last找到最后一个节点,即让last=last.next不断循环,当last.next=null时就得到了最后一个节点,然后让last.next=node,这样就实现了将node尾插到原来的链表中,最后返回链表的头节点。public class Node {//定义No...原创 2019-09-16 12:55:53 · 183 阅读 · 0 评论 -
根据前序遍历构建二叉树
//如何只有前序遍历(带空节点的)创建二叉树/*1.无法直接切割为左右子树序列2.在创建树的过程中,会得到用掉了多少个节点*///返回两个值,创建好树的根节点,用掉的个数,用一个类包起来public class Solution9020{ private static class TreeNode { int val; TreeNode left;...原创 2019-09-20 19:11:51 · 2063 阅读 · 0 评论 -
static关键字语法总结
1.static修饰成员变量:如果一个成员变量使用了static关键字,那么这个变量不在属于对象自己,而是属于所在类,多个对象共享同一份数据public class Student0923 { private String name; private int age; static String room;//所在教室 public Student0923()...原创 2019-09-23 17:53:41 · 139 阅读 · 0 评论 -
直接插入排序
直接插入排序原理:整个区域分为有序区间和无序区间,有序区间:[0,i) 无序区间:[i,array.length)每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入.import java.lang.reflect.Array;import java.util.Arrays;//排序/*稳定性:两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们...原创 2019-09-25 14:48:26 · 98 阅读 · 0 评论 -
堆排序
对于堆排序,首先我们要清楚双亲和左右孩子的下标关系:已知双亲下标(parent)左孩子的下标: 2parent+1右孩子的下标: 2parent+2已知左/右孩子下标双亲下标:(child-1)/2对堆的理解:1.堆逻辑上是一颗完全二叉树2.堆物理上是保存在数组中3.满足任意结点的值都大于其子树中结点的值,叫做大堆/大根堆/最大堆,反之,小堆/小根堆/最小堆任意给定一个数组...原创 2019-09-26 17:23:22 · 244 阅读 · 0 评论 -
希尔排序
希尔排序法又称为缩小增量法,希尔排序的基本思想是:先选定一个整数(通常是gap/3+1),把待排序文件所有记录分成各组,所有的距离相等的记录分在同一组内,并对每一组内的记录进行排序,然后gap=gap/3+1得到下一个整数,再将数组分成各组,进行插入排序,当gap1时,就相当于直接插入排序。其实希尔排序是对直接插入排序的优化,直接插入排序组中记录的间隔是1,而希尔排序是取一个特定的整数,进行分组,...原创 2019-09-26 18:09:20 · 168 阅读 · 0 评论 -
快速排序quickSort()
排序:重点–>稳定性:保证排序后相同的数据相对位置不变,则具备稳定性一次使得一个数据有序(减治排序)插入排序:在无序区间选择第一个数,在有序区间遍历,查找合适的位置插入选择排序:遍历无序区间,查找最大数的下标冒泡排序:遍历无序区间,通过两两比较,将最大的数挤到最后快速排序(重点)总览过程:1.在排序区间选择一个基准值2.遍历整个待排序区间,将比基准值小的(可能包含==)放在...原创 2019-09-26 21:02:49 · 96 阅读 · 0 评论 -
继承中super和this关键字用法总结
继承中方法的覆盖重写重写(Override):在继承关系当中,方法的名称一样,参数列表【也一样】,覆盖,覆写。重载(Overload):方法名称一样,参数列表【不一样】方法的覆盖重写的特点:创建的是子类对象,则优先用子类方法方法覆盖重写的注意事项:1.必须保证父子类之间方法的名称相同,参数列表也相同@Override 写在方法前面用来检测是不是有效的正确覆盖重写(最好写上,更加安全)...原创 2019-10-02 11:39:59 · 401 阅读 · 0 评论 -
继承和抽象类
Java语言是单继承的一个类的直接父类只能有唯一一个。class A{}class B extends A {} //正确class C{}calss D extends A,C{} //错误Java语言可以多级继承一个子类的直接父类是唯一的,但是一个父亲可以拥有很多个子类class A{};class B extends A{} //正确class C ext...原创 2019-10-02 19:11:22 · 84 阅读 · 0 评论 -
搜索树
搜索树顾名思义就是二叉搜索树又称二叉排序树,或者是一颗空树,或者是具有以下性质的树:1.若它的左子树不为空,则左子树上所有节点的值都小于根节点的值2.若它的右子树不为空,则右子树上所有节点的值都大于根节点的值3.它的左右子树也分别为二叉搜索树搜索树的主要操作:查找 插入 删除== 查找==若根节点不为空:如果根节点key==查找key 返回true如果根节点key&...原创 2019-10-11 19:32:29 · 1380 阅读 · 0 评论 -
Java基础
1.简单介绍计算机体系结构 冯诺依曼体系2.环境变量3.源代码(* ,java)经过 javac -encoding -UTF8 helloworld.java4.变量的定义语法规则:1)类型 变量名称;2)类型 变量名称=值;1.字面值2.其他变量(表达式)3.方法的返回值9.赋值过程类型转换小类型赋值给大类型 隐式转换大类型赋值给小类型 显式...原创 2019-07-17 22:08:12 · 73 阅读 · 0 评论 -
单向链表的头插
对链表做头插,首先定义一个Node类型,然后实现一个头插public class Node { int val; Node next=null; Node(int val){ this.val=val; }}public class pushFront { public static Node pushFront(Node hea...原创 2019-09-15 15:29:55 · 136 阅读 · 0 评论 -
语法复习
数组: 引用类型的变量定义语法int[] a;赋值 int[] a={1,2,3,4,5};int[] a=new int[5];== 如果数组中的元素没有初始化,元素的值就是元素类型的默认值==int[] a=new int[] {1,2,3,4,5};引用类型是什么?(变量)保存的是找到数组线索内存:栈区 堆区 方法区四种类型的变量1.形...原创 2019-09-14 14:06:33 · 92 阅读 · 0 评论 -
数组
原创 2019-07-22 08:13:00 · 81 阅读 · 0 评论 -
类与对象
原创 2019-07-21 21:32:00 · 62 阅读 · 0 评论 -
面向对象---类与对象
1.面向对象的三大特征1)封装性2)继承性3)多态性面向对象最大的特征:可以对现实生活进行抽象2.基本概念1).类:指共性的概念2)对象:指的是一个具体的,可以使用的事物。通俗来说,类就是产生对象的蓝图。对象的所有行为,一定要在类中进行完整的定义。类中的组成:属性+方法class 类名称{属性1;属性2;属性n…; 方法1 () { } ...原创 2019-07-21 21:25:07 · 106 阅读 · 0 评论 -
链表的概念及结构
首先我们知道链表在逻辑上是有前后关系的,在物理结构上不保证有前后关系,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。在实际中,链表的结构非常多样,要学习链表就要知道链表常用的变量的含义,在链表中会使用head代表链表的第一个节点,通过第一个节点就可以找到完整的链表的所有节点,所以,链表的第一个节点往往代表整个链表,空链表就是一个节点都没有的链表,也就没有第一个节点,head=null表示第...原创 2019-07-25 16:34:31 · 215 阅读 · 0 评论 -
链表(头插,尾插,逆置链表)
原创 2019-07-25 15:35:24 · 215 阅读 · 0 评论 -
顺序表实现栈
首先我们应清楚什么是栈,栈元素具有线性关系,即前前驱后继关系。只不过它是一种特殊的线性表而已,定义中说是在线性表的尾指针进行插入和删除操作,这里表尾是指栈顶,而不是栈底,它的特殊之处在于限制了这个线性表的插入和删除的位置,它始终只在栈顶进行。这也使得:栈底是固定的,最先进栈的只能在栈底。栈的插入操作,叫做进栈,也叫压栈,栈的删除操作,叫做出栈,也叫弹栈,退栈。栈的顺序存储结构简称顺序栈,它是运算受...原创 2019-07-30 08:56:03 · 259 阅读 · 0 评论 -
Java基础知识总结
1.java标识符变量,常量,函数,语句块的名字1)由字母,数字,_,所组成,(不能以数字开头,不能用java中的关键字)2)标识符采用有意义的简单命名3)"所组成,(不能以数字开头,不能用java中的关键字) 2)标识符采用有意义的简单命名 3)"所组成,(不能以数字开头,不能用java中的关键字)2)标识符采用有意义的简单命名3)"“不要...原创 2019-07-18 00:08:41 · 68 阅读 · 0 评论