java
zy不迷路
我是一个小菜鸟
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
俄罗斯方块游戏代码
/* 俄罗斯方块游戏java代码 这里由五个类组成,每个类一个文件, 放在同一文件夹底下,运行ErsBlocksGame文件即可 */ import javax.swing.*; import java.awt.*; import java.awt.event.*; /** * 游戏主类,继承自JFrame类,负责游戏的全局控制。 * 内含 * 1, 一个G...原创 2020-01-03 11:44:19 · 1836 阅读 · 0 评论 -
java中文件的相关操作总结
首先回顾冯诺依曼体系: 输入 程序 输出 键盘 屏幕 文件 文件(硬盘) 网络 网络 1.如何从Input中把数据读到进程中来 2.如何把数据输出到Output去 程序设计中的分层问题 1.继承/实现 2.操作系统 3.界面–操作–数据存储 1.输入源可能很...原创 2019-11-29 20:25:58 · 498 阅读 · 0 评论 -
多线程
CPU cpu:中央处理器,对数据进行计算,指挥电脑中的软件和硬件干活 cpu的分类: AMD Inter 线程 线程属于进程 是进程中的一个执行单元,负责程序的执行 多线程的好处: 1.效率高 2.多个线程之间互不影响 线程调度: 分时调度:所有线程轮流使用CPU,平均分配每个线程占用cpu的a时间 强扎实调度:如果线程的优先级相同,那么会随随机选择一个(线程随机性),java使用的为抢占式调...原创 2019-11-09 18:56:14 · 153 阅读 · 0 评论 -
异常(受查异常,非受查异常)
2.异常: 1.作用 2.语法 1.抛出异常的语法 throw异常类型的对象 2.try - catch finally try{可能发生异常的操作} catch(异常类型 a){} finally{} 3.定义异常(定义一个类,全部来自Throwable接口(父类)下面的) ...原创 2019-11-05 18:34:03 · 449 阅读 · 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 · 156 阅读 · 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 · 161 阅读 · 0 评论 -
StringBuilder类小结
StringBuilder类:字符串缓冲区 public class StringDemo { /* StringBuilder类:字符串缓冲区 字符串是常量,他们的值在创建之后就不能更改,字符串的底层是一个被final修饰的数组,不能改变,是一个常量 进行字符串的额相加,内存中就会有多个字符串,占用空间,效率低下 String s="a"+"b"+"c"...原创 2019-10-23 11:25:15 · 241 阅读 · 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 · 198 阅读 · 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 · 120 阅读 · 0 评论 -
Map和Set的使用
自定义类型作为TreeMap的K 自定义类型作为TreeSet的E 要求:1.类型是Comparable的 2.构造时传入Comparator 泛型中的父子类型(重要) MyArrayList 不是 MyArrayList的父类型 MyArrayList 也不是 MyArrayList的父类型 需要使用通配符来确定父子类型 MyArrayList<?> 是 MyyArrayList&l...原创 2019-10-13 14:13:33 · 192 阅读 · 0 评论 -
对象的向上转型和向下转型
1.对象的向上转型,其实就是多态写法: 格式:父类名称 对象名 = new 子类名称(); Animal animal = new Cat(); ...原创 2019-10-12 17:18:59 · 314 阅读 · 0 评论 -
多态的内容小结
多态中成员变量及成员方法的使用特点 面向对象三大特征:封装性,继承性,多态性 extends 继承或者 implements实现 是多态性的前提 左父右子就是多态 代码当中体现多态 ,其实就是一句话,父类引用指向子类对象 格式: 父类名称 对象=new 子类名称();【左父右子】 或者: 接口名称 对象名 =new 实现类名称(); 访问成员变量变量的两种方式: 1.直接通过对象名称访问...原创 2019-10-12 16:37:42 · 182 阅读 · 0 评论 -
接口的内容小结
在Java 9+版本中,接口的内容可以有: 1.成员变量其实是常量,格式: public static final 数据类型 常量名称=数据值; 注意:常量必须进行赋值。而且一旦赋值不能改变,常量名称完全大写,用下划线进行分割 2.接口中最重要的就是抽象方法,格式: public abstract 返回值类型 方法名称(参数列表);public 和 abstract都是可以省略的 注意:实现...原创 2019-10-12 15:45:39 · 195 阅读 · 0 评论 -
顺序表的增、删、查、改
用java实现顺序表,首先来说一下什么是顺序表,顺序表是物理地址相邻的,看起来像是数组的定义,不过,,顺序表和数组也有不同。 顺序表需要的不只是一个能存放一排数据的空间,它需要的是,这个空间可以变动大小,能够实际地得到当前被利用的情况,可以被外界简单的插入,删除等等操作,这是一个固定的数组所不能做到的。 //顺序表的元素类型int public class MyArrayList { //...原创 2019-09-17 16:15:47 · 193 阅读 · 0 评论 -
二叉树的前中后序遍历
所谓三种不同的顺序:区别在于根节点遍历的时机不同。 前序遍历:根左右(根节点在最前面) 中序遍历:左根右(根节点在中间) 后序遍历:左右根(根节点在最后) import java.util.*; public class BinaryTree { private static class Node{ private char val; private...原创 2019-09-17 16:23:15 · 142 阅读 · 0 评论 -
二叉树的层序遍历
二叉树的前中后序遍历和层序遍历对应深度优先和广度优先,深度优先就像前,中,后序一样一直往下走,直到走不下去,广度优先则是一层一层的走,按二叉树从上到下,从左到右依次打印每个节点中存储的数据。 /*1.层序遍历及其变形题 2.前中后序的非递归写法 */ //层序遍历可以认为是二叉树的广度优先遍历(队列) public static LevelOrder{ private static...原创 2019-09-20 19:11:04 · 136 阅读 · 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 · 277 阅读 · 0 评论 -
单向链表的尾删
链表的尾删依然分为空链表和非空链表,对于空链表来说,链表中没有节点无法删除,所以直接返回null,对于非空链表,要实现链表的尾删就要找到倒数第二个节点,让倒数第二个节点的next指向null,这样就实现了删除最后一个节点,最后返回链表的头节点head. public class Node { int val; Node next=null; Node(int val)...原创 2019-09-16 13:56:05 · 1142 阅读 · 0 评论 -
单向链表的头删
链表的头删分为空链表和非空链表两种情况,对于空链表,链表中一个节点都没有,所以无法删除,返回null,对于非空链表,头删就是让head(头节点)指向head的下一个节点,这样原来的头节点就被删除,此时head指向的节点就是删除原来头节点之后的头节点,直接返回现在的head即可。 public class Node { int val; Node next=null; N...原创 2019-09-16 13:36:15 · 463 阅读 · 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 · 149 阅读 · 0 评论 -
单向链表的尾插
实现一个单向链表的尾插,首先也是要对原始链表进行判断,分情况,对于空链表来说,尾插就直接返回node,如果是非空链表,就要通过last找到最后一个节点,即让last=last.next不断循环,当last.next=null时就得到了最后一个节点,然后让last.next=node,这样就实现了将node尾插到原来的链表中,最后返回链表的头节点。 public class Node {//定义No...原创 2019-09-16 12:55:53 · 306 阅读 · 0 评论 -
根据前序遍历构建二叉树
//如何只有前序遍历(带空节点的)创建二叉树 /* 1.无法直接切割为左右子树序列 2.在创建树的过程中,会得到用掉了多少个节点 */ //返回两个值,创建好树的根节点,用掉的个数,用一个类包起来 public class Solution9020{ private static class TreeNode { int val; TreeNode left;...原创 2019-09-20 19:11:51 · 2184 阅读 · 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 · 197 阅读 · 0 评论 -
直接插入排序
直接插入排序原理:整个区域分为有序区间和无序区间,有序区间:[0,i) 无序区间:[i,array.length) 每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入. import java.lang.reflect.Array; import java.util.Arrays; //排序 /* 稳定性:两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们...原创 2019-09-25 14:48:26 · 155 阅读 · 0 评论 -
堆排序
对于堆排序,首先我们要清楚双亲和左右孩子的下标关系: 已知双亲下标(parent) 左孩子的下标: 2parent+1 右孩子的下标: 2parent+2 已知左/右孩子下标 双亲下标:(child-1)/2 对堆的理解: 1.堆逻辑上是一颗完全二叉树 2.堆物理上是保存在数组中 3.满足任意结点的值都大于其子树中结点的值,叫做大堆/大根堆/最大堆,反之,小堆/小根堆/最小堆 任意给定一个数组...原创 2019-09-26 17:23:22 · 385 阅读 · 0 评论 -
希尔排序
希尔排序法又称为缩小增量法,希尔排序的基本思想是:先选定一个整数(通常是gap/3+1),把待排序文件所有记录分成各组,所有的距离相等的记录分在同一组内,并对每一组内的记录进行排序,然后gap=gap/3+1得到下一个整数,再将数组分成各组,进行插入排序,当gap1时,就相当于直接插入排序。其实希尔排序是对直接插入排序的优化,直接插入排序组中记录的间隔是1,而希尔排序是取一个特定的整数,进行分组,...原创 2019-09-26 18:09:20 · 246 阅读 · 0 评论 -
快速排序quickSort()
排序: 重点–>稳定性:保证排序后相同的数据相对位置不变,则具备稳定性 一次使得一个数据有序(减治排序) 插入排序:在无序区间选择第一个数,在有序区间遍历,查找合适的位置插入 选择排序:遍历无序区间,查找最大数的下标 冒泡排序:遍历无序区间,通过两两比较,将最大的数挤到最后 快速排序(重点) 总览过程: 1.在排序区间选择一个基准值 2.遍历整个待排序区间,将比基准值小的(可能包含==)放在...原创 2019-09-26 21:02:49 · 159 阅读 · 0 评论 -
继承中super和this关键字用法总结
继承中方法的覆盖重写 重写(Override):在继承关系当中,方法的名称一样,参数列表【也一样】,覆盖,覆写。 重载(Overload):方法名称一样,参数列表【不一样】 方法的覆盖重写的特点:创建的是子类对象,则优先用子类方法 方法覆盖重写的注意事项: 1.必须保证父子类之间方法的名称相同,参数列表也相同 @Override 写在方法前面用来检测是不是有效的正确覆盖重写(最好写上,更加安全) ...原创 2019-10-02 11:39:59 · 501 阅读 · 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 · 150 阅读 · 0 评论 -
搜索树
搜索树顾名思义就是二叉搜索树又称二叉排序树,或者是一颗空树,或者是具有以下性质的树: 1.若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 2.若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 3.它的左右子树也分别为二叉搜索树 搜索树的主要操作:查找 插入 删除 == 查找== 若根节点不为空: 如果根节点key==查找key 返回true 如果根节点key&...原创 2019-10-11 19:32:29 · 1537 阅读 · 0 评论 -
Java基础
1.简单介绍计算机体系结构 冯诺依曼体系 2.环境变量 3.源代码(* ,java) 经过 javac -encoding -UTF8 helloworld.java 4.变量的定义 语法规则: 1)类型 变量名称; 2)类型 变量名称=值; 1.字面值 2.其他变量(表达式) 3.方法的返回值 9.赋值过程类型转换 小类型赋值给大类型 隐式转换 大类型赋值给小类型 显式...原创 2019-07-17 22:08:12 · 123 阅读 · 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 · 234 阅读 · 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 · 154 阅读 · 0 评论 -
数组
原创 2019-07-22 08:13:00 · 130 阅读 · 0 评论 -
类与对象
原创 2019-07-21 21:32:00 · 123 阅读 · 0 评论 -
面向对象---类与对象
1.面向对象的三大特征 1)封装性 2)继承性 3)多态性 面向对象最大的特征:可以对现实生活进行抽象 2.基本概念 1).类:指共性的概念 2)对象:指的是一个具体的,可以使用的事物。 通俗来说,类就是产生对象的蓝图。对象的所有行为,一定要在类中进行完整的定义。 类中的组成: 属性+方法 class 类名称{ 属性1; 属性2; 属性n…; 方法1 () { } ...原创 2019-07-21 21:25:07 · 165 阅读 · 0 评论 -
链表的概念及结构
首先我们知道链表在逻辑上是有前后关系的,在物理结构上不保证有前后关系,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。 在实际中,链表的结构非常多样,要学习链表就要知道链表常用的变量的含义,在链表中会使用head代表链表的第一个节点,通过第一个节点就可以找到完整的链表的所有节点,所以,链表的第一个节点往往代表整个链表,空链表就是一个节点都没有的链表,也就没有第一个节点,head=null表示第...原创 2019-07-25 16:34:31 · 299 阅读 · 0 评论 -
链表(头插,尾插,逆置链表)
原创 2019-07-25 15:35:24 · 310 阅读 · 0 评论 -
顺序表实现栈
首先我们应清楚什么是栈,栈元素具有线性关系,即前前驱后继关系。只不过它是一种特殊的线性表而已,定义中说是在线性表的尾指针进行插入和删除操作,这里表尾是指栈顶,而不是栈底,它的特殊之处在于限制了这个线性表的插入和删除的位置,它始终只在栈顶进行。这也使得:栈底是固定的,最先进栈的只能在栈底。栈的插入操作,叫做进栈,也叫压栈,栈的删除操作,叫做出栈,也叫弹栈,退栈。栈的顺序存储结构简称顺序栈,它是运算受...原创 2019-07-30 08:56:03 · 360 阅读 · 0 评论 -
Java基础知识总结
1.java标识符 变量,常量,函数,语句块的名字 1)由字母,数字,_,所组成,(不能以数字开头,不能用java中的关键字)2)标识符采用有意义的简单命名3)"所组成,(不能以数字开头,不能用java中的关键字) 2)标识符采用有意义的简单命名 3)"所组成,(不能以数字开头,不能用java中的关键字)2)标识符采用有意义的简单命名3)"“不要...原创 2019-07-18 00:08:41 · 123 阅读 · 0 评论
分享