自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 七牛云1024创建节-赛后有感

在决赛路演那天,我深刻地见识到了其他同学的作品,无论是页面设计、功能实现、文档说明还是视频演示,都无可挑剔。这使我更加清楚地认识到自己与那些技术大佬之间的差距。最后,我想建议大家有机会一定要多参加比赛,无论比赛规模大小,你的每一段经历都会在你未来的升学和求职过程中扮演至关重要的角色。路漫漫其修远兮,让我们共同加油吧。

2023-11-27 19:24:46 839 1

原创 MySQL密码输入正确,却无法登录

MySQL在登陆时,会去查mysql数据库中的user。该表中记录了用户名,用户的权限,用户登录的密码,以及用户可以登录的IP地址。user表时是以user和host字段作为表的联合索引。我们在登录时,就会就会查询该表获取user和host字段(如果不指名登录的IP,默认的host为localhost)。如果我们以前在配置远程连接时,修改过user表中的host字段,我们仍使用一下这种方式进行登录mysql -u root -p就可能出现,我们登录时指定的user(root)和host(localh

2022-01-17 15:21:32 7582 4

原创 Java基础

Java基础复习Java常用快捷键删除指定行:Ctrl+D复制当前行到下一行:Ctrl+Alt+向下光标运行代码:Alt+B查看类的继承关系:把光标放在类名上,Ctrl+H补全代码:Alt+/注释:Ctrl+/位运算原码、反码、补码二进制的最高位是符号位,0表示整数,1表示负数正数的原码,反码,补码都一样(三码合一)负数的反码 = 原码的符号不变,其他位取反负数的补码 = 反码 + 1,负数的反码 = 补码 - 10的反码,补码都是0java没有无符号数,即java中的数都是

2021-09-23 16:21:51 791

原创 MYSQL笔记

MYSQLStructure Query Language(结构化查询语言)简称SQLMySQL是基于SQL查询的开源跨平台数据库管理系统(DBMS),MYSQL是一个关系数据库管理系统(RDBMS)MYSQL分为了三个部分:数据库管理系统数据库管理系统包括多个数据库数据库包括多张表,和其他的数据对象表由行和列构成每一行叫做一条记录,在Java中一条记录就是一个对象数据库本质是一个文件夹,数据库表本质是一个文件。SQL的分类1、DDL(Data Definition Langu

2021-08-16 21:35:56 190

原创 包装类

包装类1.位置:位于Java的lang包下,所以可以直接使用。2.理解:八种数据类型的都有对应的包装类。在实际应用中经常需要将基本数据类型转化为对象来使用。提供包装类给便于操作。3.作用:(1)某些方法的参数必须是一个类,为了更加方便的使用基本数据类型的数据,所以要提供包装类。List list=new ArrayList(); list.add(new Integer(20)); list.add(new Integer(30)); System.

2021-06-08 17:36:23 139

原创 线程同步

作用我们在日常生活中,会遇到多个人同时对一个账户取款的情况,线程同步就可以保证让一个用户取款的时候,其他用户不能对同一个账户取款。如何实现1.使用synchronized做锁 Account account=new Account(); @Override public void run() { synchronized(account){ if(account.have()>=400){ account

2021-05-28 13:14:51 77

原创 线程控制

thread.join();直接阻塞其他线程,等该线程执行完了以后,才会执行其他线程。public final void join() throws InterruptedException { join(0); }final修饰的方法,写在start()方法之后Thread.sleep(1);让当前线程进入阻塞状态,这样就会把cpu让出来,其他线程就可以执行任务。可以设置阻塞的时间,当阻塞时间结束,就会进入阻塞状态,来争夺cpu执行任务public static na

2021-05-27 21:04:29 86

原创 线程的生命周期

但你创建了一个线程对象线程就处于一个新生状态,start之后就进入了就绪状态,等待cpu分配时间,来执行任务,如果在规定的时间内没有执行完任务,依然后让出cpu来,其他的线程来执行任务。等cpu再分配给它时候,接着执行任务。运行状态的线程三个出口(1).任务执行完,线程终止。(2).线程进入阻塞状态(3).回到就绪状态一个入口就绪状态---->运行状态就绪状态的线程三个入口(1)线程启动(2)解除阻塞状态(3)运行状态—>就绪状态一个出口进入运行状态...

2021-05-27 18:48:22 63

原创 实现多线程

继承Thread类public class RunThread extends Thread继承了Thread类后,就可以重写一个run()方法,该方法中就是线程要执行的任务。main()方法也是一个线程,叫主线程。我们可以在主线程中创建线程对象来增加线程,实现多线程。线程的常用方法1.Thread.currentThread()得到当且的线程2.getName()得到线程的名字3.getPriority()得到线程的优先级4.thread.start()启动线程5.run() 他不是

2021-05-26 23:39:41 75

原创 缓存流

字节缓冲流缓存流属于包装流,通过多字节流的包装来提高读写效率。1.创建字节缓存流InputStream fis= new FileInputStream("d:/readme.txt"); OutputStream fos=new FileOutputStream("d:/readme2.txt"); BufferedInputStream bis=new BufferedInputStream(fis); BufferedOutputStream bo

2021-05-25 14:53:13 237

原创 IO流

1.文件输入输出流FileInputStream,FileOutputStream都属于字节流FileInputStream的父类是InputStream(抽象类)FileOutputStream的父类是OutputStream(抽象类)(1)创建流:三种构造方法的重载```cppInputStream fis= new FileInputStream("d:/readme.txt"); OutputStream fos=new FileOutputStream("d:/read

2021-05-24 22:33:05 83

原创 泛型

泛型的作用1.在添加元素阶段,就进行元素类型的检查。(安全)2.获取元素时,不需要进行强制转换。(简单)参数化类型:把要添加元素的数据类型作为参数传入。泛型接口Java中的泛型接口:List<E>,Set<E>,Map<K,V>,Collection<E>,Iterable<E>,Comparator<T>,Comparable<T>泛型类Java中的泛型类:HashSet<E>,ArrayList

2021-05-23 18:13:33 147

原创 PAT乙级02

#include <iostream>#include <string>using namespace std;int main() { string s; cin >> s; int sum = 0; string str[10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi","ba", "jiu"}; for (int i = 0; i < s.length(); i++) sum

2021-05-23 08:28:34 96

原创 HashSet和TreeSet源码

Set其实就相当于一个Map,在你创建一个Set对象时,其实就是创建了一个Map对象public HashSet() { map = new HashMap<>(); }底层有一个Object的对象private static final Object PRESENT = new Object();当Set中添加元素的时候,就把元素当作Map中的key处理,同时所有的value都是刚刚的Object对象public boolean add(E e) {

2021-05-22 19:15:44 70

原创 TreeMap源码

底层是一个红黑树每一个节点的构成static final class Entry<K,V> implements Map.Entry<K,V> { K key; V value; Entry<K,V> left; Entry<K,V> right; Entry<K,V> parent; boolean color = BLACK;

2021-05-22 19:00:10 80

原创 Iterator源码

Iterator是一个接口,他的实现类都会在类的内部定义一个iterator方法类public Iterator<E> iterator() { return new Itr(); }可以看到方法中创建了一个Itr对象,Itr是一个内部类,可以方便的访问外部类中的成员。提供更小的封装性。private class Itr implements Iterator<E> { int cursor; // index of nex

2021-05-22 18:32:42 100

原创 理解HashMap源码

jdk1.7中的HashMap源码1.函数签名public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable实行了Map接口。2.静态内部类Entry,(jdk1.8中叫做Node,都表示节点的意思)static class Node<K,V> implements Map.Entry<K,V> {

2021-05-21 22:45:34 139 1

原创 Map的使用

1.Map是一个接口,HashMap,TreeMap和LinkedHashMap都是Map的实现类。2.Map<String ,String> map=new HashMap<String,String>();因为Map中存储的是键值对象,所以添加泛型的时候,也需要两个泛型。3.Map中添加元素时,使用的put方法。4.对于Map中的key值其实相当于一个Set,key值存储时,是唯一的,而且是无序的。对于value,它是跟着key走的,如果有相同的key,就会出现value的

2021-05-21 20:36:38 221

原创 Hashcode的原理

1.Hashcode底层是散列表:顺序表+链表。2.特点:添加快,按照内容查询快。3..Hashcode添加的原理:(1)利用.hashcode()方法计算哈希码。(2)利用哈希码来确定存储位置(3)如果,链表中没有元素,就直接添加,如果存储位置处已有元素,利用equals判断是否有相同的元素,如果没有就添加,(这种情况称为冲突)。如果有,为保证唯一性,就不添加了。4哈希码的计算原理:(1)对于整数类型的数据,就直接返回该整数(2)对于其他的基本的数据类型都用不同的处理类型,尽量保证不同的数

2021-05-21 14:58:59 2038

原创 Set的使用

Set的特点1.Set中存储的是无序,唯一的元素。2.Set因为是无序的所以也就没有索引,所以List中关于索引的方法,在Set中就没有了。同时,也就不能用for循环,来实行对集合遍历。3.Set的两个实现类HashSet和TreeSet。HashSet是无序的,但TreeSet是自然有序的,就是大小顺序。向Set中添加自定义对象的注意点1.任意对象想要放入底层结构是哈希表的集合中,都要重写equals方法和Hashcode方法来保证唯一性。2,任意想要放入底层结构是红黑数的集合中,都要实现一个

2021-05-20 18:20:55 556

原创 栈和队列

1.首先他们都是线性表2.栈的特点是:先进后出,跟子弹夹一样。栈的主要操作为:入栈,出栈,取栈顶元素(也叫去尾部元素)。3.队列的特点:先进先出,排队一样,队列的主要操作为:入队列,出队列,寻找栈顶元素。...

2021-05-20 17:23:01 71

原创 ArreayList和LinkedList源码

实现了三个没有方法的接口public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable底层内容1.存在一个对象数组;transient Object[] elementData;2.使用private int size;来记录List中包含对象的个数。注意点1.jdk1.8中调

2021-05-19 22:02:46 93

原创 泛型的使用

ArrayList<Integer> arrayList=new ArrayList<Integer>();ArrayList<Integer>就是定义泛型的语法。作用:添加了泛型以后,就规定该集合只能添加,泛型类的对象。如果添加其他类的对象就会报错。并且集合类中的方法的返回值也是也是泛型类。这样就可以避免添加了其他数据类型的数据,而且不需要进行类型的转换,更加方便。...

2021-05-16 19:07:36 75

原创 ArrayList类

创建对象ArrayList<Integer> arrayList=new ArrayList<Integer>();添加元素arrayList.add(67); arrayList.add(78); arrayList.add(56); arrayList.add(49); arrayList.add(2,99);遍历ArrayList集合(三种方式)//使用for循环来遍历 System.

2021-05-16 18:57:58 102

原创 集合概述

分类1.集合分为Collection和Map,主要区别为:Map是一种映射关系,在Map中存储的是一对键值对象。而Collection只存储值。同时,Collection和Map都是接口。2.Collection又可以分为List和Set。分别为Collection的子接口。3.ArrayList,LinkedList,为List的实现类,HsahSet和TreeSet是Set的实现类。LinkedHashSet为HashSet的子类。4.HashMap和TreeMap为Map的实现类。各个类的

2021-05-16 18:31:52 82

原创 66. 加一

使用数组时的错误1.已经定义过的数组就不能在次定义了。但已经定义的数组可以改变数组的长度。int[] digits=new int[length];digits=new int [length+1];2.要注意数组最后一个数据的索引为length-1。整体代码class Solution { public int[] plusOne(int[] digits) { int length=digits.length; while(digi

2021-05-15 21:00:26 65

原创 59. 螺旋矩阵 II

整体代码(模仿法)class Solution { public int[][] generateMatrix(int n) { int[][] arrs=new int[n][n]; int l=0;int r=n-1;int t=0;int b=n-1; int cen=n*n; int num=1; while(num<=cen){ for(int i=l;i<=r;i++)arrs[t][i

2021-05-15 12:02:45 65

原创 1. 两数之和

整体代码:class Solution { public int[] twoSum(int[] nums, int target) { int n=nums.length; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if (nums[i]+nums[j]==target){

2021-05-15 11:35:47 71

原创 Java中数组的创建方式

静态创建int [] arr=new int []{1,23,4,5}; int [] arr1={1,23,4,5};两种方式,第二种不较常用。注意点:这种创建方式创建的数组,数组长度的是由后边元素个来决定,所以在使用过程中容易造成数组越界的异常。动态创建//动态创建 int [] arr2=new int[6];动态创建会先指定数组的长度。使用下标访问数组元素System.out.println(arr2[2]); System.out

2021-05-15 10:33:49 185

原创 File类

public class TestFile { public static void main(String[] args) { //创建File对象 File file=new File("d:/c++document"); //文件是否存在 System.out.println(file.exists()); //判断是否是文件 System.out.println(file.isFile());

2021-05-11 20:02:18 65

原创 枚举类

作用当遇到要建立一组常量时,使用枚举会很方便。语法public enum Season { 春,夏,秋,冬;}使用public class TestEnum { private Season season; public Season getSeason() { return season; } public void setSeason(Season season) { this.season = season;

2021-05-11 18:38:49 52

原创 Random类

Math.random()该方法是产生0-1的随机数,不包括1.Random类可以提供更多类型的随机数。System.out.println(random.nextInt(10));//最大是bounder-1//产生(20-30)的随机数 System.out.println(random.nextInt(21)+10);...

2021-05-11 15:23:05 54

原创 Math类

Math类是一个final类,并且构造方法是private修饰,所以不能创建对象。同时Math类中属性和方法都是static所以可用类名类直接调用方法和属性。方法介绍1.找较大值 System.out.println(Math.max(78,90));2.绝对值 System.out.println(Math.abs(-6));3.正数返回1,负数返回1,0返回0 System.out.println(Math.signum(78) ); System.out.printl

2021-05-11 15:08:01 120

原创 DateFormat类

从名字上来看(日期形式),就应该可以明白DateFormat类是给日期来设计一种输出的形式构造方法DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");DateFormat dateFormat1=new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");参数是一个字符串,设定一种输出Date的输出模式,注意的是该字符串中的字母是有特定的意义的,所以不能随便改变。prase方法参数是

2021-05-09 19:46:50 102

原创 Date类

构造方法1.有参的构造方法public Date(long date) { fastTime = date; }计算机中的时间都是算出来的。他是以1970-1-1 8:00:00为基准加上毫秒数来计算时间的。fastTime就是底层要加的毫秒数。2.无参的构造方法public Date() { this(System.currentTimeMillis()); }他会拿着当前时间的毫秒数来作为参数,来调用Date有参的构造方法。3.getTi

2021-05-09 18:26:27 131

原创 StringBilder类源码阅读

1StringBuilder---->Stringpublic String(StringBuilder builder) { this.value = Arrays.copyOf(builder.getValue(), builder.length()); }这里其实是调用了String类的构造方法。构造方法中就是使用数组工具类的Arrays.copyOf方法进行了数组的复制。builder.getValue()获取builder底层的数组。并把该数组赋值给String

2021-05-09 11:59:58 91

原创 StringBuilder类

StringBuilder类与StringBuffer类都代表的可变字符序列,同时他们有共同的父类:AbstractStringBuilder类。StringBuilder类与StringBuffer类的区别1.StringBuilder类是jdk1.5才提供的,线程不安全,没有做线程同步检测,因此,效率较高。2.StringBuilder类是jdk1.0才提供的,线程安全,会做线程同步检测,开发效率较低。3.两个二类中的方法很类似。下面主要以StringBuilder类为例,来讲述方法的作用。方

2021-05-09 10:14:24 155

原创 String类源码

1.String类是一个final类public final class String2.底层是一个字符数组private final char value[];3.实现了Comparable接口public int compareTo(String anotherString) { int len1 = value.length; int len2 = anotherString.value.length; int lim = Math.min(len

2021-05-08 20:17:31 254

原创 String对象的创建方法

先看一段带代码和代码的结果public static void main(String[] args) { String str1=new String("dgg"); String str2=new String("dgg"); System.out.println(str1==str2); System.out.println(str1.equals(str2)); String str3="ddg";

2021-05-08 18:31:05 449

原创 String类

首先明确String类的对象代表不可变字符序列。String类中的常用方法1.创建String类的对象String str=new String("周志浩ZZH");2.输出字符串的长度(这里输出的是字符的个数) System.out.println(str.length());3.判断字符串是否为空System.out.println(str.isEmpty());4.判断字符串的开头和结尾是否有为参数中的字符串System.out.println(str.startsWith("

2021-05-08 17:28:40 357

空空如也

空空如也

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

TA关注的人

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