自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 run()和start()方法

线程的run()和start()调用 start() 方法是用来启动线程的,轮到该线程执行时,会自动调用 run();直接调用 run() 方法,无法达到启动多线程的目的,相当于主线程线性执行 Thread 对象的 run() 方法。

2021-11-03 20:31:47 185

原创 堆(优先队列)的实现(大根堆)

堆(优先队列)的实现(大根堆)public class MyHeap { //向下调整 //前提条件是要求被调整节点左右子树都已经是堆了 //从indexOfParent这个位置开始向下调整 //按照大根堆来实现 public static void shiftDown(int[] array,int heapSize,int indexOfParent){ int parent=indexOfParent; int child=pa

2021-05-30 12:30:12 502

原创 浏览器输入一个url后发生的事情

浏览器输入一个url后发生的事情应用层:应用程序封装HTTP请求报文传输层:操作系统封装TCP首部(TCP协议的数据)网络层:操作系统封装IP首部(IP协议数据)数据链路层:

2021-05-28 00:35:48 137

原创 二叉树的遍历,非递归实现

二叉树的遍历,非递归实现前序遍历 //入栈时先是右子树再是左子树,即保证出栈时先是左子树再是右子树 //由于用的是栈数据结构所以先进后出先压右再压左,出的时候先出左再出右 public static void preOrderNoR(TreeNode root){ if(root==null){ return; } Stack<TreeNode> stack=new Stack<>();

2021-05-27 14:42:00 61

原创 二叉树的遍历,递归实现

二叉树的遍历,递归实现先序遍历public static void preOrder(TreeNode root){ if(root==null){ return; } System.out.print(root.val); preOrder(root.left); preOrder(root.right); }中序遍历public static void inOrder(Tre

2021-05-27 14:28:40 48

原创 循环队列的实现,基于数组

循环队列的实现,基于数组//循环队列//数组实现public class Queue { private int[] data =new int[100]; //有效区间[head,tail) private int head=0; private int tail=0; private int size=0; //1、入队 public boolean offer(int val){ if (size== data.lengt

2021-05-26 15:24:31 66

原创 队列的实现,基于链表

队列的实现,基于链表//单向队列//先进后出//尾插头删//用链表实现,顺序表也可以,但是在头部操作时代价太高public class Queue { private class Node{ int val; Node next; public Node(int val){ this.val=val; } } private Node head=null; private Nod

2021-05-26 15:01:54 63

原创 栈的实现,通过链表实现

栈的实现,通过链表实现class Node{ int val; Node next; public Node(int val){ this.val=val; }}public class Stack2 { private Node head=null; private int size=0; //1、入栈 public void push(int val){ Node newNode=new Node(va

2021-05-25 08:50:53 44

原创 栈的实现,通过数组存储

栈的实现,通过数组存储public class Stack1 { //java底层是通过数组来实现 //初始大小为10,每次二倍扩容 private int[] data=new int[10]; private int size=0; //扩容,realloc private void realloc(){ //二倍扩容 int[] newData=new int[data.length*2]; for (

2021-05-25 08:31:37 367

原创 有傀儡节点实现单链表

有傀儡节点实现单链表1、isEmpty()实现判断链表是否为空2、toString()实现将链表元素序列化成一个字符串3、printList()实现将链表元素依次打印出来4、findLastNode()实现找到链表的最后一个结点5、 size()实现计算链表长度public class LinkedList { //傀儡节点 private Node head=new Node(); //判断是否为空 public boolean isEmpty(){

2021-05-25 01:18:58 66

原创 无傀儡节点链表增删改查及序列化实现

无傀儡节点链表增删改查及序列化实现class Node2{ int val; Node2 next; public Node2(int val){ this.val=val; }}class LinkedList{ private Node2 head=null; //增删改查 //添加节点 public boolean add(int val){ if (head==null){

2021-05-25 01:08:35 63

原创 SQL中SUM()和COUNT()的使用

SQL中SUM()和COUNT()的使用常用于:count() -- 返回某列的行数sum() -- 返回某列值之和-- 统计emp表中薪资大于3000的员工人数select count(*) from emp where sal>3000;-- 统计emp表中所有员工的总薪资(不包含奖金)select sum(sal) as 员工总薪资 from emp;count()为空时返回结果为0sum()为空时返回结果为nullPS:如果想要sum()不返回null-- 利用i

2021-05-23 13:07:02 3839

原创 手动实现ArrayList顺序表

手动实现ArrayList顺序表//简单实现ArrayList,元素按照String类型,非泛型版本public class ArrayList { private String[] data=null; //当前顺序表中存在元素个数 private int size=0; //当前顺序表中最大容量,size>capacity时需要扩容 private int capacity=100; public ArrayList(){ da

2021-05-22 20:40:05 81

原创 JavaSE JDK1.8 简单总结

JavaEE JDK1.8 简单总结(思维导图)访问权限关键字:重载和重写的区别:异常体系:

2021-01-30 01:05:49 258

原创 Java中的try...catch...finally语句中finally语句的执行

Java中的try…catch…finally语句中finally语句的执行finally关键字1、finally 代码块出现在 catch 代码块最后。2、无论是否发生异常,finally 代码块中的代码总会被执行。3、在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。例:try{ // 程序代码}catch(异常类型1 异常的变量名1){ // 程序代码}catch(异常类型2 异常的变量名2){ // 程序代码}finally{ // 程序代码}

2021-01-28 01:13:15 480

原创 Java的String进行比较时(==和.equals)

Java的String进行比较时(==和.equals)1、使用==进行比较时,并不是在比较字符串内容, 而是比较两个引用是否是指向同一个对象例:此时输出结果为true,因为字符串"hello"是在字符串常量池中,两个String类型变量都指向了字符串常量池中的"hello" String str1="hello"; String str2="hello"; System.out.print(str1==str2);例:此时输出结果为false,因为使用了new关

2021-01-22 23:50:05 449

原创 Java中重载和重写规则及使用范围

Java中重载和重写规则及使用范围1、重载方法名称相同,参数的类型、个数及顺序不同,返回值无影响范围:一个类例:改变参数可以完成重载class A{ public void func(int a){ System.out.print("原始方法"); } public void func(double a){ System.out.print("重载后的方法"); }}例:改变返回值不能构成重载,会报错**‘func(int)’

2021-01-22 23:23:21 901

原创 JAVA中的移位运算(>>>移位符号)

JAVA中的移位运算(>>>移位符号)JAVA中的逻辑运算常见的有两种:左移 << :最左侧的位不要了,最右侧补0右移 >> :最右侧的位不要了,最左侧补符号位(正数补0,负数补1)还有一个不常见的无符号右移 >>> :最右侧的位不要了,最左侧补0PS:左移一位相当于原数字2,左移N位,相当于原数字2的N次方右移一位相当于原数字/2,右移N位,相当于原数字/2的N次方计算机移位效率高于乘除,可以用移位代替代码中的乘除2移位位

2020-12-23 23:30:52 265

原创 JAVA关于方法重载的疑问

JAVA的重载JAVA在重载时有两条规则:1、函数名相同,参数类型不同2、函数名相同,参数个数不同在此基础上会有一些疑问:1、返回值不同时是否也是重载?答:JAVA的重载与返回值无关,在调用方法时,只能捕捉到参数,处理器无法了解返回值类型2、参数位置调换时是否也是重载?答:不一定(1)假设参数是两个int类型变量,调换位置以后在调用方法时相当于还是两个int变量,无差别例如: public static int add(int a,int b) { return a+

2020-12-21 12:10:19 155

空空如也

空空如也

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

TA关注的人

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