自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 问答 (1)
  • 收藏
  • 关注

原创 git 查看某文件状态

查看某文件状态之前的文章,我们已经成功添加并提交了一个txt文件现在我们将学习如何查看此文件是否修改过,修改的具体内容。现在在本地操作可能感受不到这有多大的用处。但是在以后的远程连接中,如果有别人或者自己修改出错了,并且是很长时间前修改的,忘了修改的具体位置或代码,怎么办呢?首先我们先试着修改一下我们的txt文件(这里的txt文件是上一个文章创建的)保存后,运行git status命令:我们可以看到,文件被修改了,但这是还没有被提交的修改在没有修改之前,是这样的:那么如何查看修改内容呢

2021-09-07 09:50:11 1238

原创 git新手教程

创建版本库首先,选择一个合适的地方,创建一个空目录通过git init命令把这个目录变成Git可以管理的仓库这时你的文件夹里就会多出一个隐藏的git文件把文件添加到库我们首先创建一个txt文件,一定要放到初始化过的文件夹下第一步,使用git add执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。第二步,git commit这里-m 后,相当于我们的注释(之后有大作用,真的!)1 file changed表示一个文件被

2021-09-07 08:29:06 195

原创 Java-----反射【内存分析、根据反射创建各种对象、普通方法调用与反射的对比速度】

Java内存分析了解:类的加载过程当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过如下三个步骤来对该类进行初始化。类的加载与ClassLoader的理解加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法其的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象。链接:将Java类的二进制代码合并到JVM的运行状态之中的过程。验证:确保加载的类信息符合JVM规范,没有安全方面的问题准备:正式为类变量(static)分配内存并设置类

2021-04-27 07:51:46 576 6

原创 Java-----反射【初步了解反射,静态于动态语言的区别,Java Reflection和Class类】

反射机制静态 VS 动态语言动态语言是一类在运行时可以改变其结构的语言:列入新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构主要动态语言:Object-C、C#、JavaScript、PHP、Python等。静态语言与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++Java不是动态语言,但Java可以称之为“准动态语言”。既Java有一定的动态性,我们可以利用反射机制获得类似动态

2021-04-27 07:41:38 504 1

原创 Java-----注解和反射【注解、内置注解、元注解、自定义注解】

注解什么是注解Annotation是从JDK5.0开始引入新技术Annotation的作用:不是程序本身,可以对程序作出解释。(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取Annotation的格式:注解是以“@注释名”在代码中存在的,还可以添加一些参数值,列如:@SuppressWarnings(value=“unchecked”).Annotation在哪里使用?可以附加在package,class,method,field等上面,相当

2021-04-22 20:53:14 157

原创 Java-----多线程【线程池】

使用线程池背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。思路:提前创建好多个线程,翻入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。好处:提高响应速度(减少了创建新线程的时间)降低资源消耗(重复利用线程池中线程,不需要每次都创建)便于线程管理(……)corePoolSize:核心池的大小maximumPoolSize:最大线程数keepAliveTime:线程没有任务是最多保持多长时

2021-04-12 10:38:19 207 4

原创 Java-----多线程【线程通信问题 与 两大解决方式】

线程通信问题线程通信应用场景:生产者和消费者的问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费。如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止。如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止。Java提供了几个方法解决线程之间的通信问题方法名作用wait()表示线程一直等待,直到其他线程通知,与sleep不同,会释放锁

2021-04-11 15:33:25 622 14

原创 Java-----多线程【死锁、案例 与 Lock锁】

死锁多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题。死锁避免方法产生死锁的四个必要条件:护持条件:一个资源每次只能被一个进程使用。请求与保存条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺。循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。上面列

2021-04-09 22:04:02 3140 24

原创 Java-----多线程【同步方法 与 不安全案例转换为安全案例】

由于同一进程的多个线程共享一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问是的正确性,在访问时加入锁机制synchronized,当一个线程获得对象的排它锁,独占资源,其他线程必须等待,使用后释放锁即可。存在以下问题:一个线程持有锁会导致其他所有需要此锁挂起;在多线程竞争下,加锁,释放锁会导致比较多的上下文切换 和 调度延时,引起性能问题;如果一个优先级高的线程等待一个优先级低的线程释放锁 会导致优先级倒置,引起性能问题。同步方法由于我们可以通过privat

2021-04-08 16:42:46 2592 24

原创 Java-----多线程【并发与三大不安全案例】

线程同步(重点)并发同一个对象被多个线程同时操作现实生活中,我们会遇到”同一个资源,多个人都想使用“的问题,比如,食堂排队打饭,每个人都想吃饭,最天然的解决办法就是,排队,一个个来。处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象。这时候我们就需要线程同步,线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用。由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突的问题,为了保证

2021-04-08 07:32:24 2037 22

原创 Java-----多线程【线程的方法、停止、状态观测和守护线程】

线程状态五大状态线程方法方法说明setPriority(int newPriority)更改线程的优先级static void sleep(long millis)在指定的毫秒数内让当前正在执行的线程休眠void join()等待该线程终止static void yield()暂停当前正在执行的线程对象,并执行其他线程void interrupt()中断线程,别用这个方式boolean isAlive()测试线程是否处于活动状态停止

2021-04-07 20:35:43 221 8

原创 Java-----多线程【Lambda表达式】

Lambda表达式λ希腊字母表中排序第十一位的字母,英语名称为Lambda避免匿名内部类定义过多其实质属于函数式编程的概念(params) -> expression[表达式](params) -> statement[语句]​ (params) -> {statements}a -> System.out.println(“i like lambda——>”+a);new Thread(()->System.out.prin

2021-04-05 22:20:35 3170 26

原创 Java-----多线程【静态代理模式--代码案例】

静态代理案例解释:public class sta_dl { public static void main(String[] args) { new j(new z()).obj(); }}// 创建一个结婚接口,让真实对象和代理对象去调用interface zj{ void obj();}// 这是真实的你,它不能代替你结婚class z implements zj{ @Override public void obj(

2021-04-05 22:18:52 198

原创 Java-----多线程【Runnable接口与Callable接口】

Runnable接口定义MyRunnable类实现Runnable实现run()方法,编写线程执行体创建线程对象,调用start()方法启动线程推荐使用Runnable对象,因为Java单继承的局限性// 创建线程方式2:实现runnable接口,重写run方法,执行需要丢入runnable接口实现类,调用start方法。public class RunnableDemo implements Runnable{ public static void main(String[] ar

2021-04-05 22:17:09 238 1

原创 Java-----多线程【使用Thread创建线程】

多线程详解普通方法调用和多线程 Process与Thread说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的的单位。注意:很多多线程是模拟出来的,真正的多线程是指有多个CPU,即多核,如服务器。如果是模拟出来的多线程,即在一个CPU的情况下,在同

2021-04-05 22:14:03 392 2

原创 Java-----IO流【对象序列,反序列化流,序列化集合,Properties类】

序列化序列化:将Java中的对象的内容转化成字节数据的过程 Java的对象(内存)—–》字节——->文件(硬盘) 字节输出流 ObjectOutputStream 对象序列流反序列化:将对象的字节数据转换成Java对象的过程 文件(硬盘)———>字节————-》Java对象(内存) 字节输入流 ObjectInputStream 对象的反序列化流数据持久化 -–> java对象的持久化ObjectOutputStream 对象序列流java

2021-04-01 17:07:42 187 2

原创 Java-----IO【转换输入、输出流】

InputStreamReader类(转换输入流)转换流java.io.InputStreamReader,是Reader的子类,是从字节流到字符流的桥梁。它读取字节,**并使用指定的字符集将其解码为字符。**它的字符集可以由名称指定,也可以接受平台的默认字符集。构造方法InputStreamReader(InputStream in): 创建一个使用默认字符集的字符流。InputStreamReader(InputStream in,String charsetName): 创建一个指定字符集的

2021-04-01 17:05:30 567 1

原创 Java-----IO流【字符集编码介绍】

字符集编码介绍转换流源或者目标对应的设备是字节流,但操作的是文本数据,可以用转换流来做桥梁。一旦操作文本需要具体的指定编码表时,必须使用转换流。字符编码计算机只能处理数字,如果要处理文本,就必须先把文本转化为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是429

2021-04-01 17:02:18 326

原创 Java-----IO流【字符缓冲输出、输入流】

字符缓冲输出流构造方法public BufferedReader(Reader in); 创建一个新的缓冲输入流public BufferedWriter(Writer out); 创建一个新的缓冲输出流特有方法字符缓冲流的基本方法与普通字符流调用方式一致,不再阐述,我们来看它们具备的特有方法。BufferedReader:public String readLine(); 读一行文字。BufferedWriter:public void newLine(); 写一行行分隔符,由系统属性

2021-04-01 16:52:08 163 2

原创 Java-----IO流【字节缓冲输出、输入流】

字节缓冲输出流概述缓冲流,也叫高效流,是对4个基本都FileXxx流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。构造方法(字节缓冲流)public BufferedInputStream(Inpu

2021-04-01 16:10:16 230

原创 Java-----IO流【字节流与字符流】

字节流FileOutputStream——字节输出流案例:public static void main(String[] args){ // 1.创建一个字节输出流的对象 // 为了方便练习,我们直接创建到根目录下 // 创建一个字节输出流对象 OutputStream outputStream = new FileOutputStream("a.txt");// 覆盖,下一次写入的字符会覆盖本来的字符 OutputStream outpu

2021-04-01 16:05:16 173

原创 Java-----IO流【文件(File)】

IO流IO流是什么?IO:input 和 output输入输出流的意思?Java 程序进行数据传输的管道!流就是管道的意思流:Stream显示网络操作中有没有进行数据输入输出的操作?有:例如:上网注册信息的时候,对图片信息的上传!—–上传 –输入到程序中 输入流从网上下载数据的时候,也是数据的传输! —–下载 –输出的操作文件(File)概述在计算机中所有的数据都是以文件的格式存储的!在Java中认为文件是一个对象!!!Java认为所有的东西都是对象!

2021-04-01 15:55:36 231 2

原创 Java-----Collections工具类

Collections工具类概念:集合工具类,定义了出来存取以外的集合常用方法。方法:public static void reverse(List<?> list) // 反转集合中元素的顺序public static void shuffle(List<?> list) // 随机重置集合元素的顺序public static void sort(List list) // 升序排序(元素类型必须实现Comparable接口)实例:List<In

2021-04-01 15:49:48 182

原创 Java-----Map接口与实现类

Map接口与实现类Map集合特点:用于储存任意键值对(Key-Value)键:无序、无下标、不允许重复(唯一)值:无序、无下标、允许重复方法:V put(K key,V value) // 将对象存入到集合中,关联键值。key重复则覆盖原值。Object get(Object key) // 根据键获取对应的值。Set // 返回所有key。Collection values() // 返回包含所有值的Collection集合。Set<Map.Entry&

2021-03-30 21:44:25 177 3

原创 Java-----Set接口与实现类

Set接口与实现类Set子接口特点:无序、无下标、元素不可重复。方法:全部继承自Collection中的方法。Set实现类HashSet【重点】:基于HashCode实现元素不重复。当存入元素的哈希吗相同时,会调用equals进行确认,如结果为true,则拒绝后者存入。基于HashCode计算元素存放位置。TreeSet:基于排列顺序实现元素不重复。实现类SortedSet接口,对集合元素自动排序。元素对象的类型必须实现Comparable接口,指定排序规则。通过

2021-03-30 20:48:50 198

原创 Java-----泛型和工具类

泛型和工具类泛型Java泛型是JDK1.5中引入的一个新特性,其本质是参数化类型,把类型作为参数传递。常见形式有泛型类、泛型接口、泛型方法。语法:<T,…> T 称为类型占位符,表示一种引用类型。好处:(1)提高代码的重用性(2)放置类型转换异常,提高代码的安全性。实例一(使用泛型类):// 泛型类// 语法:类名<T>// T是类型占位符,表示一种引用类型,如果编写多个使用逗号隔开public class MyGeneric&

2021-03-30 20:42:14 1200 3

原创 Java-----List接口与实现类

List接口与实现类List子接口特点:有序、有下标、元素可以重复。方法:void add(int index,Object o) // 在index位置插入对象o。boolean addAll(int index,Collection c) // 将一个集合中的元素添加到此集合中的index位置。Object get(int index) // 返回集合中指定位置的元素。List subList(int fromIndex, int toIndex) // 返回fromIndex和

2021-03-30 20:28:12 157 2

原创 Java-----Collection接口

Collection接口Collection:该体系结构的根为接口,代表一组对象,称为“集合”。List接口的特点:有序、有下标、元素可重复。Set接口的特点:无序、无下标、元素不能重复。Collection父接口特点:代表一组任意类型的对象,无序、无下标、不能重复。。方法:boolean add(Object obj) 添加一个对象。boolean addAll(Collection c) 将一个集合中的所有对象添加到此集合中。void clear() 清空此

2021-03-30 07:56:22 286 2

原创 Java集合总结 给类接口 实现类

集合的概念什么是集合概念:对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能。和数组区别:(1)数组长度固定,集合长度不固定(2)数组可以存储基本类型和引用类型,集合只能储存引用类型位置:java.util.*;Collection接口Collection:该体系结构的根为接口,代表一组对象,称为“集合”。List接口的特点:有序、有下标、元素可重复。Set接口的特点:无序、无下标、元素不能重复。Collection父接口特点:代表一组任意类型的对象

2021-03-15 18:03:27 242

原创 Java内部类

内部类(Inner Class)什么是内部类概念:在一个类的内部在定义一个完整的类。例class Outer{ class Inner{ }}特点:编译之后可生成独立的字节码文件。内部类可直接访问外部类的私有成员,而不破坏封装。可为外部类提供必要的内部功能组件。成员内部类在类的内部定义,与实例变量、实例方法同级别的类。外部类的实例部分,创建内部类对象时,必须依赖外部类对象。Outer out = new Outer(

2021-03-12 20:14:32 250 1

原创 Java异常机制 处理异常

异常机制什么是异常实际工作中,遇到情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们程序再跑着,内存或硬盘可能满了。等等。软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情况,或者叫异常,怎么让我们写的程序做出合理的处理。而不至于程序崩溃。异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络

2021-03-10 16:06:08 171

原创 Java面向对象编程(OOP)

该文章较长,建议先收藏后观看面向对象编程(OOP)初始面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么……面对过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂问题,适合处理需要多人协作的问题!对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需

2021-03-10 14:49:28 305

原创 Java方法详解

Java方法详解何谓方法System.out.println(),那么它是什么呢?Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句快的集合。我们设计方法的时候,最好保持发方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。回顾:方法的命名规则?方法的定义及调用方法的定义Java的方法类似于其它语言的函数,是一段用

2021-03-03 09:24:20 280

原创 Java数组、稀疏数组【案例+理解】

数组数组概述数组的定义数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排序组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:dataType[] arrayRefVar; // 首选方法// 或dataType arrayRefVar[]; //效果相同,但不是首先方法Java语言使用new操作符来创建数组,语法如下:da

2021-03-03 09:10:06 309

原创 Java流程控制

这是一篇关于Java流程控制的文章,文章较长,请大家认真看,多记笔记。Java流程控制用户交互ScannerScanner对象之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。Java.uyil.Scanner 是 Java5 的新特征,我们可以通过Scanner类来获取用户的输入。基本语法:Scanner s = new Scanner(System.in);通过 Scanner 类的 next() 与 next

2021-03-02 19:45:13 162

原创 关于idea使用cmd创建JavaDoc

使用cmd创建JavaDoc1. 右击idea里的项目找到Show in Explorer,打开项目路径2. 打开项目路径后,在项目路径前打cmd,用空格隔开3. 打开cmd后,输入javadoc -encoding UTF-8 -charset UTF-8 项目名.后缀名,回车4.这时你的文件夹里会添加很多的Html文件,点击index.html文件5.点开后就可以看到你的JavaDoc了...

2021-03-02 19:10:05 424

原创 Java基础语法

这篇文章,会给大家一个关于Java基础语法的详细解释,文章比较长,可以复制后当作笔记观看。谢谢大家!.......JAVA基础语法注释、标识符、关键字注释平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要注释了。注释并不会被执行,是给我们写代码的人看的书写注释是一个非常好的习惯平时写代码一定要注意规范。Java中的注释有三种:单行注释两个斜杠( // )[只能注释一行文字]多行注释杠星星杠

2021-03-02 17:55:55 270

空空如也

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

TA关注的人

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