自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis的基本数据类型

Redis的基本数据类型​ Redis使用对象来表示数据库中的键和值。当我们在Redis中创建一个键值对的时候,最少要创建两个对象。其中的键,也就是key,一定是字符串对象。其中的值,也就是value,可以是:字符串对象(String),列表对象(list),哈希对象(hash),集合对象(set),有序集合对象(Sort Set);​ 其中每个对象都是由一个redisObject结构表示,这个结构里面由三个字段属性,分别是:type(类型),encoding (编码方式) ,ptr(指向编码方式

2021-08-13 22:48:22 289

原创 反射机制

反射机制1.什么是反射机制?反射机制有什么用?​ 反射机制:可以操作字节码文件​ 作用:可以让程序更加灵活2.反射机制相关的类在哪个包下?​ java.lang.reflect.*;3,反射机制相关的主要的类有哪些?java.lang.Class;java.lang.reflect.Method;java.lang.reflect.Constructor;java.lang.reflect.Field4.在java中获取Class的三种方式?第一种:​ Class c=Cla

2021-04-11 00:13:28 161

原创 反射机制如何获取Field(属性)

反射机制如何获取Field(属性)1.先获取整个类​ Class studentClass=Class.forName(“com.javase.thread.Student”);2.再获取类中所有public修饰的Field/属性Field[] files=studentClass.getFields();System.out.println(files.length);3.然后再获取属性的名字。先获取数组Field中的元素f,再调用f.getName()方法Field f=files[0

2021-04-11 00:13:02 768

原创 资源绑定器

资源绑定器java.util包下提供了一个资源帮顶起,便于获取属性配置文件中的内容。使用以下这种方式的时候,属性配置文件xxx.properties必须放到类路径下(也就是scr包下,点开scr包下必须要直接看到这个配置文件)如果要放到scr下面的包下,需要把src下面的包都写上,例如:com/javase/classinfo资源绑定器:只能绑定xxx.properties文件。并且这个文件必须在类路径下,文件扩展名也必须是properties并且在写路径的时候,路径后面的扩展名不能写package

2021-04-11 00:11:57 307

原创 关于多线程并发环境下,数据的安全问题

关于多线程并发环境下,数据的安全问题1.为什么这个是重点? 以后在开发中,我们的项目都是运行在服务器当中,而服务器已经将线程的定义,线程对象的创建,线程的启动等,都已经实现完了。这些代码我们都不需要编写最重要的是:​ 你要知道,你编写的程序需要放到一个多线程的环境下运行,你更需要关注的是这些数据在多线程并发的环境下是否是安全的2.什么时候数据在多线程并发的环境下会存在安全问题呢?​ 三个条件:​ 条件一:多线程并发​ 条件二:有共享数据​ 条件三:共享数据有修

2021-04-09 23:49:50 663

原创 多线程并发理解

多线程并发理解1.分析一个问题:对于单核的CPU来说,真的可以做到真正的多线程并发吗?​ 对于多核的CPU电脑来说,真正的多线程并发是没有问题的。4核CPU表示同一个时间点上,可以真正的有4个进程并发执行。​ 什么是真正的多线程并发?​ t1线程执行t1的​ t2线程执行t2的。​ t1不会影响t2,t2也不会影响t1.这叫做真正的多线程并发2.单核的CPU只有一个大脑:​ 不能够做到真正的多线程并发,但是可以做到给人一种“多线程并发”的感觉。对于单核CPU来说,它们处理是

2021-04-09 23:46:59 771

原创 多线程

多线程1.什么是进程,什么是线程?​ 进程是一个引用程序(一个进程是一个软件)​ 线程是一个进程中的执行场景/执行单元​ 一个进程可以启动多个线程比如说在DOS窗口输入:java HelloWorld回车后,会先启动JVM,而JVM就是一个进程,JVM再启动一个主线程调用main方法,同时再启动一个垃圾回收线程负责看护,回收垃圾。最起码,现在的java程序中至少有两个线程并发,一个是垃圾回收线程,一个是执行main方法的主线程。注意:进程A 和进程B 的内存独立不共享。​

2021-04-09 23:46:26 47

原创 LinkedList集合

链表数据结构1.对于链表数据结构来说:基本的单元是节点Node2.对于单向链表来说,任何一个节点Node中都有两个属性:​ 第一:储存的数据​ 第二:下一个节点的内存地址3.LinkedList集合底层也是有下标的4.注意:ArrayList之所以检索效率比较高,不是单纯因为下标的原因。是因为底层数组发挥的作用。5.LinkedList集合照样有下标,但是检索/查找某个元素的时候效率比较低,因为只能从头节点开始一个一个遍历6.链表的优点:​ 由于链表上的元素在空间储存上内存地址

2021-04-08 23:27:49 407

原创 Map接口常用方法

Map接口常用方法1.Map和Collection没有继承关系2.Map集以key和value的方式存储数据:键值对​ key和value都是引用数据类型​ key和value都是存储对象的内存地址​ key起到主导的地位,value是key的一个附属品3.Map接口中常用的方法:​ 1.V put(K key,V value)向Map集合中添加键值对​ 2.V get(Object key)通过key获取value​ 3.void clear()清空Map集合​ 4

2021-04-08 23:26:24 492 1

原创 同时重写hashcode和equals方法

同时重写hashcode和equals方法1.向Map集合中存,以及Map集合中取,都是先调用key的hashCode方法,然后再调用equals方法。equals方法有可能调用,也有可能不调用。​ 拿put(k,v)举例,什么时候equals不会调用?​ k.hashCode()方法返回哈希值。​ 哈希值经过哈希算法转换成数组下标。​ 数组下标位置上如果是null,equals不需要执行。拿get(k)举例,什么时候equals不会调用?​ k.hashCode()方法返回哈希值。

2021-04-08 23:25:49 532

原创 TreeMap集合

TreeMap集合的遍历1.TreeSet集合底层实际上是一个TreeMap2.TreeMap集合底层是一个二叉树3.放到TreeSet集合中的元素,等同于放到TreeMap集合key部分了4.TreeSet集合中的元素:无序不可重复,但是可以按照元素的大小顺序自动排序。称为:可排序集合5.TreeMap集合的遍历方式第一种方式:先获取所有的key,遍历key的时候,通过key获取value​ 先把map集合通过map.keySet()方法获取map集合中所有的key,将这些k

2021-04-08 23:24:50 234

原创 IO流

IO流什么是IO?​ I:Input 输入 读​ O:Output 输出 写通过IO可以完成硬盘文件的读和写。输入输出都是相对于内存来说的,以内存为参照物2.IO流的分类?​ 有多种分类方式:​ 一种方式是按照流的方向进行分类:​ 以内存作为参照物,​ 往内存中去,叫做输入(Input),或者叫做读(Read)​ 从内存中出来,叫做输出(Output),或者叫做写(Write)​ 另一种方式是按照读取数据方式不同进行分类:​ 有的流是

2021-04-08 23:24:08 92

原创 一维数组的概念和基本语法

一维数组数组的基本语法Array1.Java语言中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是Object2.数组实际上是一个容器,可以同时容纳多个元素(数组是一个数据的集合)。数组:字面意思是”一组数据“3.数组当中可以储存”基本数据类型“的数据,也可以储存”引用数据类型“的数据4.数组因为是引用类型,所以数组对象是在对内存当中。(数组是储存在堆当中的)5.数组当中如果储存的是”Java对象“的话,实际上储存的是对象的”引用(内存地址)“,数组中不能直接储存java对象6.数组

2021-03-27 18:15:35 2184

原创 匿名内部类

匿名内部类1.什么是匿名内部类?匿名内部类是局部内部类的一种,因为这个类没有名字而得名,叫做匿名内部类2.匿名内部类具体怎么使用?当我们有一个接口的时候,因为接口是完全抽象的,我们不能直接new对象,所以我们需要创建一个类去实现接口,同时,我们需要在这个类中将接口中的抽象方法重写。使用匿名内部类,可以不写这个接口,我们可以直接new接口{},在这个{}里面将接口的抽象方法重写即可。3.匿名内部类的不足之处?1)代码不易读,看起来繁琐2)只能使用一次,不可以重复使用3)最好不要用匿名内部类,

2021-03-27 09:44:11 72

原创 package和import大总结

Package和import大总结Package作用:可以更好的组织类,包与文件夹相似,文件夹可以将不同的文件放在同一个文件夹里面,而包可以将不同的类文件放在一个包里面。这也可以减少类名的冲突问题,这也与文件夹相似,同一个文件夹中的文件不可以重名,同一个包里的类名不可以重复,不同包中的类名可以重复,对包中的类起到了一定的保护作用。1.package出现在java源文件第一行2.带有包名的类怎么编译?javac -d.xxx.java3.带有包的类怎么运行?java 完整类名(包名.类名)im

2021-03-27 09:43:01 245

原创 接口基础语法总结

接口的基础语法总结1.接口也是一种引用数据类型2.接口是完全抽象的3.接口怎么定义?语法是什么?【修饰符列表】interface 接口名{}接口要用interface关键字定义4.接口支持多继承5.接口中只有常量+抽象方法。6.接口中所有元素都是public修饰的,都是公开的7.接接口中的方法不能有方法体8.接口中的抽象方法的public abstract可以省略9.接口中的常量的public static final可以省略10.一个非抽象的类,实现接口的时候,必须将接口中的所

2021-03-27 09:42:21 151

原创 抽象类总结

JAVASE抽象类总结1.抽象类怎么定义?在class前添加abstract关键字就可以了。2.抽象类是无法直接创建对象的,是无法实例化的,所以抽象类是用来被子类继承的。3.final关键字和abstract关键字不可以联合使用,这两个关键字是对立的。4.抽象类的子类可以是抽象类,也可以是非抽象类。5.抽象类中不一定要有抽象方法,但是有抽象方法的类一定是抽象类。6.抽象类虽然无法实例化,但是抽象类中有构造方法,这个构造方法是供子类使用的。7.抽象方法怎么定义?public abstrac

2021-03-24 23:19:14 106

空空如也

空空如也

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

TA关注的人

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