自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql你应该知道这些

数据库概念:存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据有以下几个缺点:文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便数据库存储介质:磁盘内存为了解决上述问题,出现了更利于管理数据的软件,数据库,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。数据库分类数据库大体可以分为 关系型数据库 和 非关系型数据库关系型数据库(RDBMS):是指采用了关系模型来组织数据的数据库。 简

2020-09-06 22:32:56 219

原创 计算机网络:软件结构、通信协议、TCP通信程序

计算机网络软件结构C/S结构:是指客户端和服务端结构,常见的程序有QQ、安全软件管家等。B/S结构:是指浏览器和服务器结构,常见浏览器有谷歌、火狐等。网络通信协议通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则。它对数据的传输格式、传输速率、传输步骤做了统一的规定,通信双方必须同时遵守才能完成数据交换TCP/IP协议传输控制协议/因特网互联协议。定义了计算机如何连入因特网,以及数据如何在他们之间传输的标准。TCP是面向连接的通信协议,即在传

2020-09-03 20:49:59 397

原创 Java基础:转换流以及流的序列化、反序列化,打印流

转换流转换流分为两个:OutputStreamWriter:是字符流通向字节流的桥梁:可使用指定的charset将要写入流中的字符编码成字节。InputStreamReader:是字节流通向字符流的桥梁,它使用指定的charset读取字节并将其解码为字符OutputStreamWriterjava.io.OutputStreamWriter extends Writer OutputStreamWriter:是字符流通向字节流的桥梁:可使用指定的charset将要写入流中的字符编码成字

2020-08-31 23:21:52 270

原创 Java基础:BufferedStream缓冲流

BufferedStream缓冲流BufferedStream缓冲流是对基础流的增强BufferedOutputStream:字节缓冲输出流java.io.BufferedOutputStream extends OutputStream BufferedOutputStream:字节缓冲输出流 继承自父类的共性成员方法: public void close() 关闭此输出流并释放与此流相关的任何系统资源 public void flush() 刷新此输

2020-08-30 21:57:15 563

原创 Java基础:字符输入流Reader与字符输出流Writer,续写换行,jdk7、9的新特性

字符输入流Readerjava.io.Reader 字符输入流:是字符输入流的最顶层的父类,定义了一些共性的成员方法,是一个抽象类共性的成员方法:int read()读取单个字符并返回int read(char[] chars)一次读取多个字符,将字符读入数组void close()关闭该流并释放与之关联的所有资源java.io.FileReader extends InputStreamReader extends ReaderFileReader:文件字符输入流作用:把硬盘文件中的数

2020-08-28 23:07:43 418

原创 Java基础:字节输入流 InputStream与文件复制练习:一读一写

InputStreamjava.io.InputStream:字节输入流此抽象类是表示字节输入流的所有类的超类定义了所有子类共性的方法:int read()从输入流中读取数据的下一个字节int read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中java.io.FileInputStream extends InputStreamFileInputStream:文件字节输入流作用:把硬盘文件中的数据,读取到内存中使用构造方法:FileInputStre

2020-08-27 15:47:57 341

原创 Java基础:I/O流基本概念与OutputStream类

I/O流内存:临时存储硬盘:永久存储I/O:input/output:输入(读取)/输出(写入);输入就是把硬盘中的数据,读取到内存中使用,输出就是把内存中的数据,写入到硬盘中保存。流:1个字符=2个字节,1个字节=8个二进制位,输入流/输出流,数据类型分为:字节流和字符流流输入流输出流字节InputStreamOutputStream字符readerwriterOutputStream类java.io.OutputStream :此抽象类是表示输出字节

2020-08-26 17:24:32 251

原创 递归的简单了解

递归递归:指在当前方法内调用自己的这种现象分类:直接递归:方法自身直接调用自己间接递归:a方法调用b方法,b方法调用a方法。注意事项:递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出在递归中虽然有限定条件,但是递归次数不能太多,否则会发生栈内存溢出构造方法禁止递归递归的使用前提:当调用方法时,方法主体不变,每次调用方法的参数不同,可以使用递归public class Demo01Recursion { public static void main(String

2020-08-25 16:27:49 137

原创 Java基础:File类概述及方法

##File类File类简介java.io.File类文件和目录路径名的抽象表示形式java把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行操作我们可以使用File类的方法创建一个文件/文件夹删除文件/文件夹获取文件/文件夹判断文件/文件夹是否存在对文件夹进行遍历获取文件大小File类是一个与系统无关的类,任何操作系统都可以使用这个类中的方法重点:file文件directory文件夹/目录path路径File类的静态方法st

2020-08-24 12:05:43 167

原创 Java基础:函数编程思想,Lambda表达式

函数式编程思想:只要能获取到结果,谁去做,怎么做都不重要,重视的是结果,不重视过程面向对象思想:做一件事,找一个能解决这件事的对象,调用对象的方法,完成事情。public class Demo01 { public static void main(String[] args) { //使用匿名内部类的方式,实现多线程 new Thread(new Runnable() { @Override public v

2020-08-23 16:57:24 179

原创 Java基础:华为云java基础函数题(二)

数字转汉字大写描述在代码段中,使用Java编程语言,将输入五位以下的数字金额,转换成汉字大写形式。如:12345壹万贰仟叁百肆拾伍元0.1234零元点壹贰叁肆12壹拾贰元import java.io.*;import java.util.*;public class CnUpper { // 整数部分 private String integerPart; // 小数部分 private String floatPart; // 将数字转化为汉

2020-08-22 21:27:10 591

原创 Java基础:华为云java基础函数题(一)

判断素数判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。通过键盘输入m n的值,判断m~n之间的素数,打印输出这些素数的值。import java.util.Scanner;class Test { public static void main(String[] args) { int m; int n; Scanner scanner = new Scanner(System.in); Scanner scan =

2020-08-22 21:21:18 557

原创 java基础:等待唤醒机制概念及案例、线程池应用

等待唤醒机制线程之间的通信:**概念:**多个线程在处理同一个资源,但是处理的动作(线程的任务)不相同。要想保证线程间通信有效利用资源,就要使用一些手段–等待唤醒机制等待唤醒机制:是多个线程之间的一种协作机制。就是在一个线程进行规定操作后,就进入等待状态waiting,等待其他线程执行完他们的指定代码过后再将其唤醒notify,在有多个线程进行等待时,如果需要,可以使用notifyAll()来唤醒所有的等待线程。调用wait和notify方法要注意的细节1.wait方法和notify方法需要

2020-08-21 20:53:21 905 2

原创 Java基础:多线程安全问题及其解决方法、线程的六种状态

多线程安全问题线程安全问题的产生线程安全问题:单线程程序是不会出现线程安全问题多线程程序没有访问共享数据不会产生问题多线程访问了共享的数据,就会产出线程安全问题模拟卖票:创建三个线程,同时开启,对共享的票进行出售会发现当我们多个线访问同一个资源时,且多个线程中对资源有写的操作,就容易出现线程安全问题。(重复票与不存在票)要解决线程并发访问同一资源的安全性问题,也就是解决重复票与不存在票问题,Java提供了同步机制来解决注意:线程安全问题是不能产生的,我们可以让一个线程在访问共

2020-08-19 21:09:44 175

原创 Java基础:Thread类常用方法,Thread与Runnable的区别,匿名内部类实现线程的创建

Thread类常用方法一、获取线程的名称:1.使用Thread类中的方法getName() String getName()返回该线程的名称2.可以先获取到当前正在执行的线程,使用线程中的方法getName()获取线程的名称 static Thread currentThread()返回对当前正在执行的线程对象的引用/*线程的名称:* 主线程:main* 新线程:Thread-0,Thread-1,...*/public class Demo

2020-08-18 12:41:05 218

原创 Java基础:初识线程,进程,了解主线程与创建多线程的两种方式

线程相关概念并行与并发概念阶段:并行:指两个或多个事件在同一时刻发生。同时执行并发:指两个或多个事件在同一时间段内发生。交替执行进程与线程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程:线程是指进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程,一个进程中是可以有多个线程的,这个应用程序可以称之为多线

2020-08-17 22:05:07 477

原创 Java基础:异常的注意事项与自定义异常的概念、使用。

异常的注意事项1.多个异常使用捕获应该怎样处理?1.多个异常分别处理2.多个异常一次捕获,多次处理3.多个异常一次捕获一次处理package demo02;import java.util.List;public class Demo01 { public static void main(String[] args) { //1.多个异常分别处理 try{ int[] arr = {1,2,3}; S

2020-08-17 11:17:48 230

原创 Java基础:异常关键字的解析与应用、Object类中与异常相关的静态方法

异常处理的关键字java异常处理的五个关键字:try、catch、finally、throw、throwsthrow关键字throw关键字作用:可以使用throw关键字在指定的方法中抛出指定的异常使用格式:throw new xxxException(“异常产生的原因”);注意:1.throw关键字必须写在方法的内部2.throw关键字后面new的对象必须是Exception或者Exception的子类对象3.throw关键字抛出指定的异常对象,我们就必须处理这个异常对象

2020-08-16 21:02:10 204

原创 Java中异常的概念、异常的分类与异常产生过程的解析

异常概念异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行异常的体系异常中有一个超类,就是Throwable,他又有两个子类,Error和Exception。Throwable体系:Error:严重错误error,无法通过处理的错误,只能事先避免,好比绝症E

2020-08-15 21:09:38 436

原创 Java基础:Map集合案例“斗地主”,实现从大到小看牌

之前使用集合,模拟了斗地主的进程。集合案例“斗地主”今天新学习了Map集合,增加排序功能package Gamedoudizhu;import javax.swing.plaf.synth.SynthOptionPaneUI;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;/*斗地主案例:有序版本* 1.准备牌* 2.洗

2020-08-15 17:48:48 272

原创 Java基础:HashMap存储自定义类型键值,LinkedHashMap与Hashtable的介绍

HashMap存储自定义类型键值HashMap存储自定义类型键值Map集合保证key是唯一的:作为key的元素,必须重写hashCode方法和equals方法,以保证key唯一有两种情况:1.key:Person类型Person类就必须重写hashCode方法和equals方法,以保证key唯一value:String类型2.key:Person类型Person类就必须重写hashCode方法和equals方法,以保证key唯一value:String类型package demo;

2020-08-14 21:53:56 432

原创 Java基础:Map集合、Map集合常用子类与常用方法、Map集合遍历键值对的方式

Map集合概述java.util.Map<k,v>集合Map集合的特点:1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)2.Map集合中的元素,key和value的数据类型可以相同,可以不同3.Map集合中的元素,key是不允许重复的,value是可以重复的4.Map集合中的元素,key和value是一一对应的Map集合常用子类java.util.HashMap<k,v>集合 implements Map<k,v>接口H

2020-08-14 14:59:14 214

原创 Java基础:可变参数与Collections工具类的常用方法

可变参数可变参数:是JDK1.5之后出现的新特性使用前提:当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数使用格式:修饰符 返回值类型 方法名(数据类型…变量名){}可变参数的原理:可变参数底层就是一个数组,根据传递参数个数的不同,会创建不同长度的数组,来存储这些参数传递的参数个数,可以是0个(不传递),1,2,3,…多个可变参数的注意事项:1.一个方法的参数列表,只能有一个可变参数2.如果方法的参数有多个,那么可变参数必须写在参数列表的末尾*/

2020-08-13 19:03:26 255

原创 Java基础:Set接口、HashSet集合、LinkedHashSet集合哈希值、哈希表简析

Set接口java.util.Set接口 extends Collection接口Set接口的特点:1.不允许存储重复的元素2.没有索引,没有带索引的方法,所以不能使用for循环java.util.HashSet集合 implements Set接口HashSet特点:1.不允许存储重复的元素2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历3.是一个无序的集合,存储元素和取出元素的顺序有可能不一致4.底层是一个哈希表结构(查询的速度非常快)public class Dem

2020-08-10 20:05:07 150

原创 Java基础:常用集合LinkedList与接口List

List接口java.util.List接口 extends Collection接口List接口的特点:1.有序的集合,存储元素和取出元素的顺序是一致的2.有索引,包含了一些带索引的方法3.允许存储重复的元素List接口中带索引的方法(特有)public void add(int index,E element):将指定的元素,添加到该集合中的指定位置上public E get(int index):返回集合中指定位置的元素public E remove(int index):移除

2020-08-10 16:36:36 123

原创 数据结构简析:栈、队列、数组、链表、红黑树。

数据结构数据结构,直白地理解,就是研究数据的存储方式。今天简单的分享几个最重要的数据结构方式。1.栈2.队列3.数组4.链表5.树,红黑树栈(Stack)栈是一种只能从表的一端存取数据且遵循 “先进后出” 原则的线性存储结构。如图,它的这种存储结构就跟弹夹很相似,先进去的,最后出来。队列(Queue)队列的两端都"开口",要求数据只能从一端进,从另一端出,队列中数据的进出要遵循 “先进先出” 的原则,即最先进队列的数据元素,同样要最先出队列。数组数组与顺序表、链表、栈和队列一样,

2020-08-09 16:48:08 670

原创 Java基础:集合案例 “斗地主“

斗地主集合综合案例介绍:按照斗地主的规则,完成洗牌发牌的动作具体规则:使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张,最后三张做底牌。案例分析:1.准备牌牌可以设计成一个ArrayList,每个字符串为一张牌。每张牌由花色数字两部分组成,我们可以使用花色集合和数字集合迭代完成一张牌的组装牌由Collection类的shuffle方法进行随机排序2.发牌将每个人以及底牌设计为ArrayList,将最后3张牌存放于底牌,剩余牌对3取模依次发牌3.看牌直接打印每个集合

2020-08-08 23:01:40 190

原创 JavaSE基础:泛型详解、泛型的通配符,类,方法,接口中的分别使用方法!

泛型概念泛型:是一种未知的数据类型,当我们不知道使用什么数据类型时,可以使用泛型。泛型也可以看作是一个变量,用来接收数据类型E e :元素T t :类型使用泛型的好处与弊端创建集合对象,使用泛型好处:1.避免了类型转化的麻烦,存储的是什么类型,取出的就是什么类型2.把运行期异常(代码运行后会抛出的异常),提升到编译期(写代码时报错)弊端:泛型是什么类型,就只能存储什么类型的数据创建集合对象,不使用泛型好处:集合不使用泛型,默认的类型就是Object类型,可以存储任意

2020-08-06 21:59:40 152

原创 JAVA基础:Collection集合(接口)与迭代器、增强for循环,详解

Collection接口Collection也称集合,集合概述:集合是Java中提供的一种容器,可以用来存储多个数据。集合与数组的区别:数组的长度是固定的,集合的长度是可变的。数组中存储的是同一种类型的元素,可以存储基本数据类型值,集合存储的都是对象。而且对象的类型可以不一致。集合体系的详解Collection接口可以分出两个常用子接口,List接口和Set接口,更细分的如图。Collection常用方法Collection是所有单列集合的父接口,因此在Collection中定义单列

2020-08-04 16:48:58 383

原创 Java基础:包装类详解

包装类包装类:java提供两个类型系统,基本类型和引用类型,使用基本类型在于效率,在很多情况下,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:基本类型对应包装类* byteByte* shortShort* intInteger* longLong* floatFloat* doubleDouble* charCharacter* booleanBool

2020-08-02 23:12:39 203

原创 Java常用API:System类和StringBuilder类

System类概述java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:public static long currentTimeMillis():返回以毫秒为单位的当前时间。public static void arrayCopy(Object src,int srcPos,Object dest,int destPos,int length):将数组中指定的数据拷贝到另一个数组中。public cla

2020-08-01 18:55:40 158

原创 Java常用API: Calendar类

Calendar类概述java.util.Calendar类:日历类Calendar类是一个抽象类,里面提供了很多操作日历字段的方法Calendar类无法直接创建对象使用,里面有个静态方法叫getInstance(),该方法返回了Calendar类的子类对象。static Calendar getInstance()使用默认时区和语言环境获得一个日历Calendar类中的常用方法Calendar类,日历类的成员方法:public int get(int field): 返回给定日历字段的值

2020-07-31 21:56:50 379

原创 Java基础:Object类与Date类概述

Object类java.lang.Object类是类层次接口的根类。每个类都使用Object作为父类。所有对象都实现这个类的方法。Object类中的方法Person类默认继承了Object类,所以可以使用Object类中的toString方法。String toString()返回该对象的字符串表示。直接打印输出对象名,其实就是调用toString方法。看一个类是否重写了toString方法,直接打印这个的对象,如果结果是地址值就没有重写,如果是类中的变量,那么就重写了。Perso

2020-07-30 21:03:55 404

原创 Java:内部类与final关键字解析

final关键字概念final关键字:代表最终的、不可改变的。常见的四种用法:1.可以用来修饰一个类2.可以用来修饰一个方法3.可以用来修饰一个局部变量4.可以用来修饰一个成员变量如果final修饰一个类,那么格式:public final class 类名称 { //...}含义:当前这个类不能有任何的子类。注意事项:一个类如果是被final关键字修饰后,那么所有的成员方法都无法被重写。如果final修饰一个方法,格式:public final void 方法

2020-07-27 22:52:53 898

原创 Java基础:面向对象之多态

多态定义代码当中体现多态性:父类引用指向子类对象。格式:父类名 对象名 = new 子类名();或者:接口名 对象名 = new 实现类名();多态中访问成员变量的两种方式:1.直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找。2.间接通过成员方法访问成员变量:看这方法属于谁,优先用谁,没有则向上找。多态中成员方法的访问规则是:看new的是谁,就优先用谁,没有就向上找成员变量口诀:编译看左,运行看左。成员方法口诀:编译看左,运行看右。public c

2020-07-26 21:07:47 146

原创 java基础:接口知识,深入浅出

接口概念与使用步骤接口就是一种公共的规范标准接口就是多个类的公共规范,接口是一种引用数据类型,最重要的内容就是其中的抽象方法定义一个接口的格式:public interface 接口名{//接口内容}备注:换成关键字interface之后,编辑生成的字节码文件仍然是:.java->.class在Java 7版本中,接口包含:抽象方法,常量在Java 8版本中,接口增加了:默认方法,静态方法在Java 9版本中,接口增加了:私有方法所以java中现在含有的接口内容一共有五个。

2020-07-25 19:22:09 130

原创 Java:微信发红包案例(继承相关例题)

例题描述发红包项目,针对继承的案例群主发普通红包:1.群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取。2.成员领取红包后,保存到成员余额中。请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,完成发红包的操作。例题分析由题意可知,关于类,有两个类,一个是群主类,一个是成员类。他们如果想要完成发红包这个动作,可以有两个重复的成员变量,姓名与余额。这时我们可以给她两写一个父类,进而用它们各自继承成员变量即可,优化了程序。关于方法,对于他们自身来说,群主需要一个发红包的方法

2020-07-24 21:09:39 359

原创 Java基础:abstract抽象类概要

抽象类与抽象方法概念抽象方法:如果父类当中的方法不确定如何进行方法体的实现,那么这就是一个抽象方法。对于抽象方法:就是加上abstract关键字,去掉大括号,直接分号结束。抽象类:抽象方法必须是存在在抽象类中,在class之前写上abstract抽象类与抽象方法如何使用抽象类和抽象方法如何使用:1.不能直接创建new抽象类对象2.必须用一个子类来继承抽象父类3.子类必须覆盖重写抽象父类中的抽象方法。也就是覆盖重写(实现):子类去掉抽象方法的abstract关键字,补上方法体大括号、

2020-07-24 18:50:42 140

原创 Java基础:super与this关键字继承中应该这样用。(图文)

super关键字用法super关键字的三种用法:1.在子类的成员方法中,访问父类的成员变量。2.在子类的成员方法中,访问父类的成员方法。3.在子类的构造方法中,访问父类的构造方法。package demo07;* super关键字的三种用法:* 1.在子类的成员方法中,访问父类的成员变量。* 2.在子类的成员方法中,访问父类的成员方法。* 3.在子类的构造方法中,访问父类的构造方法。*/public class Demo01Super extends Fu { int num

2020-07-23 18:10:36 139

原创 Java基础:面向对象之继承(多态的前提)

继承概念父子关系,父亲会的东西儿子继承后,都会。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承主要就是共性抽取。只写一次,让后面有共同需求的类去继承它。...

2020-07-23 17:35:59 260

空空如也

空空如也

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

TA关注的人

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