自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言复习

选择循环语句:for == while如果有固定次数,用for;如果必须执行一次,用do_while;其他情况用while;素数:只能被1和自己整除的数eg:1,2,3,5,7,…break:跳出循环continue:跳过循环这一轮剩下的语句,进入下一轮goto:适合多重循环嵌套,当满足其中一种判断后跳出循环C语言的类型:整数:char short int long longlong浮点数:float double long double逻辑:bool指针,自定义类型

2022-01-23 23:08:48 301

原创 IDEA-打印流

import java.io.FileNotFoundException;import java.io.PrintStream;/* java.io.PrintStream:打印流 PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。 PrintStream特点: 1.只负责数据的输出,不负责数据的读取 2.与其他输出流不同,PrintStream 永远不会抛出IOException 3

2021-03-14 21:23:52 272

原创 IDEA-序列化与反序列化、序列化集合

需要先定义以一个类import java.io.Serializable;/* 序列化和反序列化的时候,会抛出NotSerializableException:没有序列化异常 类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。 Serializable接口也叫标记型接口 要进行序列化和反序列化的类必须实现Serializable接口,这样会给类添加一个标记 当我们进行

2021-03-14 21:23:24 724

原创 IDEA-OutputStreamWriter写出转换流、InputStreamReader读取转换流、转换文件编码练习

OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。在写入底层输出流之前,得到的这些字节将在缓冲区中累积。可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。注意,传递给 write() 方法的字符没有缓冲。import java.io.*;/* java.io.

2021-03-14 21:07:45 295

原创 IDEA-效率测试,(一个、多个)文件复制练习

import java.io.*;import java.util.HashMap;public class DemoTest { public static void main(String[] args) throws IOException { //1.创建一个HashMap集合对象,key:存储每行文本的序号(1,2,3,...)value:存储每行的文本 HashMap<String, String> map = new HashMap&l

2021-03-14 20:59:31 289

原创 IDEA-字符缓冲输出流、输入流

字符缓冲输出流相比于之前的流多了一个newLine() 的成员方法,作用是自动换行字符缓冲输入流多了一个newLine() 成员方法,作用是读取一行数据import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;/* java.io.BufferedWriter extends Writer BufferedWriter:字符缓冲输出流 继承自父类的共性成员方法:

2021-03-07 23:47:32 393

原创 IDEA-使用字符缓冲流做文件复制

import java.io.*;/* 文件复制练习:一读一写 明确: 数据源:D:\QQ\SogouInput\SogouExe\SogouSvc.exe 数据的目的地:E:\SogouSvc.exe 文件复制的步骤: 1.创建字节缓冲输入流对象,构造方法中传递字节输入流 2.创建字节缓冲输出流对象,构造方法中传递字节输出流 3.使用字节缓冲输入流对象中的方法read,读取文件

2021-03-07 15:13:14 261

原创 IDEA-缓冲流的原理、字节缓冲输出流、输入流

使用基本的字节输入流读取文件:就像快递小哥刚入职,送快递不够快,骑着电动车送。使用字节缓冲输入流读取文件,给基本的字节输入流增加了一个缓冲区(数组)提高题本的字节输入流的读取效率。就像快递小哥转正了,骑着三轮车送,效率高。字节缓冲输出流OutputStream:import java.io.*;/* java.io.BufferedOutputStream extends OutputStream BufferedOutputStream:字节缓冲输出流 继承自父类的共性

2021-03-06 23:16:39 227

原创 IDEA-Properties集合、基本使用、存储、store方法、(重点)load方法

import java.io.*;import java.util.Properties;import java.util.Set;/* java.util.Properties集合 extends Hashtable<k,v> implements Map<k,v> Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 Properties 集合是唯一和IO流相结合

2021-03-06 21:53:30 405

原创 IDEA-IO异常的处理、jdk7、jdk9异常处理新特性

import java.io.FileWriter;import java.io.IOException;/* 在jdk1.7之前使用try catch finally 处理流中的异常 格式: try{ 可能会产生异常的代码 }catch(异常类变量 变量名){ 异常的处理逻辑 }finally{ 一定会执行的代码 资源释放 }

2021-03-06 16:35:16 229

原创 Strign框架-依赖注入

DI的全程是Dependency Injection,中文称之为依赖注入,它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。IoC:在使用Spring框架之后,对象的实例不再有调用者来创建,而是Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制,这样控制权由应用代码转移到了Spring容器,控制权发生了反转,这就是控制反转。DI:从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于

2021-03-06 15:10:39 130

原创 Spring框架-入门程序

无法清楚记录,仅作为博主复习,不建议大神们学习,抱歉。首先将下载好的jar文件复制进lib,然后新建一个包,创建一个UserDao类:package com.itheima.ioc;public interface UserDao { public void say();}然后创建实现类,重写方法:package com.itheima.ioc;public class UserDaoImpl implements UserDao{ //重写 @Override publ

2021-03-06 14:00:20 84

原创 Spring框架-核心容器

Spring容器会负责控制程序之间的关系,而不是由程序代码直接控制,Spring为我们提供了两种核心容器,分别为BeanFactory和ApplicationContext,本节将对这两种核心容器进行简单介绍;创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通畅采用XML文件形式来管理,其加载配置信息的语法如下:BeanFactory beanFactory =new XmlBeanFactory( new FileSystemResourse(“F :/app

2021-03-06 13:56:51 287

原创 Spring框架-概述、优点、体系结构

概述:什么是spring?Spring是分层的JavaSE/EE full-stack轻量级开源框架,以IoC(控制反转)和AOP(面向切面编程)为内核,使用基本的JavaBean来完成以前只可能有EJB完成的工作,取代了EJB的臃肿、低效的开发模式。在实际开发中,通常服务器端在采用三层体系结构,分别为表示层(Web)、业务逻辑层(Service)、持久层(Dao)、Spring对每一层都提供了技术支持。表示层:在表示层提供了与Struts等框架的整合业务逻辑层:(使用AOP实现)在业务逻辑层可以

2021-03-06 13:02:50 651 2

原创 IDEA-字符输出流基本使用、写入单个字符、关闭和刷新、写其他数据的方法(char/string)、续写和换行

写入单个字符import java.io.FileWriter;import java.io.IOException;/* java.io.writer:字符输出流,是所有字符输出流的最顶层的父类 void write(int c) :写入单个字符。 void write(char[] cbuf):写入字符数组。 void write(char[] cbuf, int off, int len) :写入字符数组的某一部分。 vo

2021-03-04 17:16:29 831 2

原创 IDEA-字符输入流Reader类、读取中文

import java.io.FileReader;import java.io.IOException;/* java.io.Reader:字符输入流,是字符输入流最顶层的父类,定义了一些共性的成员方法,是一个抽象类 共性的成员方法: int read() 读取单个字符并返回 int read(char[] cbuf):一次读取多个字符,将字符读入数组 void close():关闭该流并释放与之关联的所有资源。 java.

2021-03-04 16:15:19 528 2

原创 IDEA-使用字节流读取中文问题

/* 使用字节流读取中文文件 1个中文 GBK:占用两个字节 UTF-8:占用三个字节 */public class Demo01Reader { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("D:\\idea\\basic-codes\\day09-IOAndPropert

2021-03-04 15:28:26 281 1

原创 IDEA-IO流练习(文件复制)

import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.lang.reflect.Field;/* 文件复制练习:一读一写 明确: 数据源:D:\sougou\SogouInput\readme.txt 数据的目的地:E:\readme.txt 文件复制的步骤: 1.创建一个字节

2021-03-04 14:43:59 475 1

原创 IDEA-IO流、字节输入流(InputStream)、读取一个、多个字节

一次读取一个字节import java.io.FileInputStream;import java.io.IOException;/* java.io.InputStream:字节输入流 此抽象类是表示字节输入流的所有类的超类。 定义了所有子类共性的方法 abstract int read() :从输入流中读取数据的下一个字节。 int read(byte[] b) :从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。 vo

2021-03-04 13:51:51 957 1

原创 IDEA-IO流、字节输出流-写多个字节的办法、续写和换行

一切皆为字节:一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此,所以,字节流可以传输任意文件数据,在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制。import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;/* java.io.OutputStream:字节输出流

2021-03-04 12:51:02 493 3

原创 IDEA-File文件过滤器、三种优化

FileFilter过滤器:必须明确两件事情:1.过滤器中的accept方法是谁调用的2.accept方法的参数pathname是什么?ListFiles方法一共做了三件事:1.ListFiles方法会对构造方法中传递的目录进行遍历,获取目录的每一个文件/文件夹 -->封装为File对象2.ListFiles方法会调用参数传递的过滤器中的方法accept3.ListFiles方法会把遍历得到的每一个File对象,传递过accept方法的参数pathnameaccept方法返回值是一个布

2021-03-03 17:44:58 675 1

原创 IDEA-递归、练习题、综合案例

使用递归一定要明白,使用递归的条件和目的。/*递归的分类: 直接递归:方法自身调用自己 间接递归:可以A方法调用B方法,B方法调用C方法,C方法调用A方法注意事项: 递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出 在递归中虽然有限定条件,但是递归次数不能太多,否则也会发生栈内存溢出 构造方法,禁止递归递归的使用前提: 当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归 */public class Demo01Recursion {

2021-03-03 17:31:14 596 1

原创 IDEA-File类目录的遍历

import java.io.File;/* File类遍历(文件夹)目录功能 public String[] list():返回一个String数组,表示该File目录中的所有子文件或目录 public File[] listFiles():返回一个File数组,表示该File目录中的所有子文件或目录 注意: list方法和listFiles方法遍历的是构造方法中给出的目录 如果构造方法中给出的目录的路径不存在,会抛出空指

2021-03-03 15:43:30 416 2

原创 IDEA-File类、路径、获取功能的方法、判断功能的方法、创建删除功能的方法

import java.io.File;/* java.io.File类 文件和目录路径名的抽象表示形式。 java把电脑中的文件和文件夹(目录)封装为一个File类,我们可以使用File类对文件和文件夹进行操作 我们可以使用File类的方法 创建文件/文件夹 删除文件/文件夹 判断文件/文件夹是否存在 对文件夹进行遍历 获取文件的大小 File类是一个与系统无关的类,任何的操作系统

2021-03-03 15:13:51 1783

原创 IDEA-Lambda表达式、标准格式、参数和返回值、自定义接口、Lambda省略格式和使用前提

面向对象的思想:做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情。函数式编程思想:只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程使用传统代码/* 使用实现Runnable接口的方式实现多线程程序 */public class Demo01Runnable { public static void main(String[] args) { //创建Runnable接口的实现类对象 Runnable run

2021-03-02 16:40:26 1612

原创 IDEA-线程池

线程池就是重复利用线程,比如有五个任务,三个线程,那么三个线程先各自执行完任务,谁先执行完,就继续执行剩下的任务,这样就避免了反复创建销毁线程,提高了效率。package demo01;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/* 线程池:JKD 1.5+之后提供的 java.util.concurrent.Executors:线程池的工厂类,用来生成线程池

2021-03-02 14:59:33 644

原创 IDEA-等待与唤醒机制(综合案例)包子铺

等待与唤醒机制:线程之间的通信重点:有效利用资源(生产一个包子,再吃一个包子,再生产一个包子,再吃一个包子)通信:对包子的状态进行判断没有包子–> 吃货线程唤醒包子铺线程 --> 吃货线程等待 --> 包子铺线程做包子 --> 做好包子 --> 修改包子的状态为有有包子 – >包子铺线程唤醒吃货线程 --> 包子铺线程等待–>吃货线程吃包子 --> 吃完包子–>修改包子状态为没有以此反复分析:需要哪些类资源类:包子类设置包子的

2021-03-02 14:13:15 191

原创 IDEA-线程状态、等待与唤醒案例(吃包子)、计时等待的两种方式

线程状态。线程可以处于下列状态之一:NEW至今尚未启动的线程处于这种状态。RUNNABLE正在 Java 虚拟机中执行的线程处于这种状态。BLOCKED受阻塞并等待某个监视器锁的线程处于这种状态。WAITING无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。TIMED_WAITING等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。TERMINATED已退出的线程处于这种状态。阻塞状态:具有cpu的执行资格,等待cpu空闲时执行休眠状态:放弃cpu的执行

2021-03-01 17:44:43 547

原创 IDEA-解决线程问题的第三种方法-lock锁

import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/* 实现卖票案例出现的线程安全问题,卖出了不存在的票和重复的票 解决线程安全问题的第三种方案:使用lock锁 java.util.concurrent.locks.Lock接口 Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。 Lock接口中的方

2021-03-01 16:43:59 629

原创 IDEA-线程安全问题的概述、解决、同步技术原理、同步方法、静态同步方法

当使用3个线程,同时售卖100张电影票时,会出现同时出售同一张票的情况,这就是线程安全问题。注意:线程安全问题是不能产生的,我们可以让一个线程在访问共享数据的时候,无论是否失去了cpu的执行权,让其他线程只能等待,等待当前线程售卖完毕,其他线程再进行售卖。保证始终是一个线程在卖票同步代码块:synchronized关键字可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。synchronized ( 同步锁 ) {需要同步操作的代码}同步锁:对象的同步锁只是一个概念,可以想象

2021-03-01 16:30:18 303

原创 IDEA-匿名内部类方式实现线程的创建

使用线程的匿名内部类方式,可以方便的实现每个线程执行不同的线程任务操作。import demo08Runnable.RunnableImpl2;import java.lang.management.RuntimeMXBean;/* 匿名内部类方式实现线程的创建 匿名:没有名字 内部类:写在其他类内部的类 匿名内部类作用:简化代码 把子类继承父类,重写父类的方法,创建子类对象合一步完成 把实现类实现接口,重写接口中的方法,创建实现

2021-03-01 14:41:26 482 8

原创 IDEA-创建多线程的第二种方式

创建多线程程序的第二种方式:实现Runnable接口 创建多线程程序的第二种方式:实现Runnable接口 java.lang.Runnable Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现,类必须定义一个成为 run的无参数方法。 java.lang.Thread类的构造方法 Thread(Runnable target) 分配新的 Thread 对象 Thread(Runnable target,Strin

2021-02-28 21:27:41 706

原创 IDEA-多线程、主线程、创建多线程的方式、获取(设置)线程名称、sleep静态方法

并发:指两个或多个事件在同一时间段内发生。并行:指两个或多个时间在同一时刻发生(同时发生)进程:(进入到内存的程序叫进程)进程是一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程,进程也是程序的一次执行过程,是系统运行程序的基本单位,系统运行一个程序是一个进程从创建、运行到消亡的过程。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程,一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行之

2021-02-28 17:04:33 1105 1

原创 IDEA-自定义异常类、练习

/* 自定义异常类: java提供的异常类,不够我们使用,需要自己定义一些异常类 格式: public class XXXException extends Exception | RuntimeException { 添加一个空参数的构造方法 添加一个带异常信息的构造方法 } 注意: 1.自定义异常类一般都是以Excepotion结尾,说明该类是一个异常类 .

2021-02-28 13:20:36 937

原创 IDEA-异常注意事项、多异常的捕获处理、finally有return语句,子父类异常

import java.util.List;/* 异常的注意事项 运行时异常被抛出可以不处理,即不捕获也不声明抛出。 默认给虚拟机处理,终止程序,什么时候不抛出运行时异常了,再来继续执行程序 */public class Demo01Exception { public static void main(String[] args) { /* 多个异常使用捕获又该如何处理呢? 1.多个异常分别处

2021-02-28 11:56:33 288

原创 IDEA-异常处理的两种方式、Throwable类三个异常处理的方法、finally代码块

throw捕获到异常就会中断运行,而try…catch捕获到异常会跳过异常,继续向下执行throws关键字:异常处理的第一种方式,交给别人处理import java.io.FileNotFoundException;import java.io.IOException;import java.nio.channels.FileLockInterruptionException;/* throws关键字:异常处理的第一种方式,交给别人处理 作用: 当方法内部抛出异常

2021-02-27 22:30:29 1596

原创 IDEA-异常的分类、throw的关键字

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/* java.lang.Throwable:类是 java语言中所有错误或异常的超类。 Exception"编译器异常,进行编译(写代码)java程序运行出现的问题 RuntimeException:运行期异常,java程序运行过程中出现的问题 异常就相当于程序得

2021-02-27 22:04:51 887

原创 IDEA-使用date类求出生天数

import java.util.Date;import java.util.Scanner;/* 练习: 请使用日期时间相关的API,计算一个人已经出生了多少天。 分析: 1.使用Scanner类中的方法next,获取出生日期 2.使用DateFormat类中的方法parse,把字符串的出生日期解析为Date模式 3.把Date格式的出生日期转换为毫秒值 4.获取当前的日期,转换为毫秒值 5

2021-02-27 16:47:16 1265

原创 IDEA-斗地主综合案例(有序版本)

import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;/* 斗地主综合案例: 1.准备牌 2.洗牌 3.发牌 4.排序 5.看牌 */public class DouDiZhu { public static void main(String[] a.

2021-02-27 16:46:20 355

原创 IDEA-(补充知识点)JDK9新特性

JDK9对集合添加的优化import java.util.List;import java.util.Map;import java.util.Set;/* JDK9的新特性: List接口,Set接口,Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素 static <E> List<E> of (E... elements) 使用前提: 当集合中存储的元素的个数已经确定了

2021-02-27 16:45:30 83

空空如也

空空如也

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

TA关注的人

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