- 博客(17)
- 收藏
- 关注
原创 Redis的基本数据类型
Redis的基本数据类型 Redis使用对象来表示数据库中的键和值。当我们在Redis中创建一个键值对的时候,最少要创建两个对象。其中的键,也就是key,一定是字符串对象。其中的值,也就是value,可以是:字符串对象(String),列表对象(list),哈希对象(hash),集合对象(set),有序集合对象(Sort Set); 其中每个对象都是由一个redisObject结构表示,这个结构里面由三个字段属性,分别是:type(类型),encoding (编码方式) ,ptr(指向编码方式
2021-08-13 22:48:22
296
原创 反射机制
反射机制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
165
原创 反射机制如何获取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
774
原创 资源绑定器
资源绑定器java.util包下提供了一个资源帮顶起,便于获取属性配置文件中的内容。使用以下这种方式的时候,属性配置文件xxx.properties必须放到类路径下(也就是scr包下,点开scr包下必须要直接看到这个配置文件)如果要放到scr下面的包下,需要把src下面的包都写上,例如:com/javase/classinfo资源绑定器:只能绑定xxx.properties文件。并且这个文件必须在类路径下,文件扩展名也必须是properties并且在写路径的时候,路径后面的扩展名不能写package
2021-04-11 00:11:57
311
原创 关于多线程并发环境下,数据的安全问题
关于多线程并发环境下,数据的安全问题1.为什么这个是重点? 以后在开发中,我们的项目都是运行在服务器当中,而服务器已经将线程的定义,线程对象的创建,线程的启动等,都已经实现完了。这些代码我们都不需要编写最重要的是: 你要知道,你编写的程序需要放到一个多线程的环境下运行,你更需要关注的是这些数据在多线程并发的环境下是否是安全的2.什么时候数据在多线程并发的环境下会存在安全问题呢? 三个条件: 条件一:多线程并发 条件二:有共享数据 条件三:共享数据有修
2021-04-09 23:49:50
671
原创 多线程并发理解
多线程并发理解1.分析一个问题:对于单核的CPU来说,真的可以做到真正的多线程并发吗? 对于多核的CPU电脑来说,真正的多线程并发是没有问题的。4核CPU表示同一个时间点上,可以真正的有4个进程并发执行。 什么是真正的多线程并发? t1线程执行t1的 t2线程执行t2的。 t1不会影响t2,t2也不会影响t1.这叫做真正的多线程并发2.单核的CPU只有一个大脑: 不能够做到真正的多线程并发,但是可以做到给人一种“多线程并发”的感觉。对于单核CPU来说,它们处理是
2021-04-09 23:46:59
779
原创 多线程
多线程1.什么是进程,什么是线程? 进程是一个引用程序(一个进程是一个软件) 线程是一个进程中的执行场景/执行单元 一个进程可以启动多个线程比如说在DOS窗口输入:java HelloWorld回车后,会先启动JVM,而JVM就是一个进程,JVM再启动一个主线程调用main方法,同时再启动一个垃圾回收线程负责看护,回收垃圾。最起码,现在的java程序中至少有两个线程并发,一个是垃圾回收线程,一个是执行main方法的主线程。注意:进程A 和进程B 的内存独立不共享。
2021-04-09 23:46:26
53
原创 LinkedList集合
链表数据结构1.对于链表数据结构来说:基本的单元是节点Node2.对于单向链表来说,任何一个节点Node中都有两个属性: 第一:储存的数据 第二:下一个节点的内存地址3.LinkedList集合底层也是有下标的4.注意:ArrayList之所以检索效率比较高,不是单纯因为下标的原因。是因为底层数组发挥的作用。5.LinkedList集合照样有下标,但是检索/查找某个元素的时候效率比较低,因为只能从头节点开始一个一个遍历6.链表的优点: 由于链表上的元素在空间储存上内存地址
2021-04-08 23:27:49
410
原创 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
495
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
536
原创 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
238
原创 IO流
IO流什么是IO? I:Input 输入 读 O:Output 输出 写通过IO可以完成硬盘文件的读和写。输入输出都是相对于内存来说的,以内存为参照物2.IO流的分类? 有多种分类方式: 一种方式是按照流的方向进行分类: 以内存作为参照物, 往内存中去,叫做输入(Input),或者叫做读(Read) 从内存中出来,叫做输出(Output),或者叫做写(Write) 另一种方式是按照读取数据方式不同进行分类: 有的流是
2021-04-08 23:24:08
100
原创 一维数组的概念和基本语法
一维数组数组的基本语法Array1.Java语言中的数组是一种引用数据类型。不属于基本数据类型。数组的父类是Object2.数组实际上是一个容器,可以同时容纳多个元素(数组是一个数据的集合)。数组:字面意思是”一组数据“3.数组当中可以储存”基本数据类型“的数据,也可以储存”引用数据类型“的数据4.数组因为是引用类型,所以数组对象是在对内存当中。(数组是储存在堆当中的)5.数组当中如果储存的是”Java对象“的话,实际上储存的是对象的”引用(内存地址)“,数组中不能直接储存java对象6.数组
2021-03-27 18:15:35
2192
原创 匿名内部类
匿名内部类1.什么是匿名内部类?匿名内部类是局部内部类的一种,因为这个类没有名字而得名,叫做匿名内部类2.匿名内部类具体怎么使用?当我们有一个接口的时候,因为接口是完全抽象的,我们不能直接new对象,所以我们需要创建一个类去实现接口,同时,我们需要在这个类中将接口中的抽象方法重写。使用匿名内部类,可以不写这个接口,我们可以直接new接口{},在这个{}里面将接口的抽象方法重写即可。3.匿名内部类的不足之处?1)代码不易读,看起来繁琐2)只能使用一次,不可以重复使用3)最好不要用匿名内部类,
2021-03-27 09:44:11
75
原创 package和import大总结
Package和import大总结Package作用:可以更好的组织类,包与文件夹相似,文件夹可以将不同的文件放在同一个文件夹里面,而包可以将不同的类文件放在一个包里面。这也可以减少类名的冲突问题,这也与文件夹相似,同一个文件夹中的文件不可以重名,同一个包里的类名不可以重复,不同包中的类名可以重复,对包中的类起到了一定的保护作用。1.package出现在java源文件第一行2.带有包名的类怎么编译?javac -d.xxx.java3.带有包的类怎么运行?java 完整类名(包名.类名)im
2021-03-27 09:43:01
250
原创 接口基础语法总结
接口的基础语法总结1.接口也是一种引用数据类型2.接口是完全抽象的3.接口怎么定义?语法是什么?【修饰符列表】interface 接口名{}接口要用interface关键字定义4.接口支持多继承5.接口中只有常量+抽象方法。6.接口中所有元素都是public修饰的,都是公开的7.接接口中的方法不能有方法体8.接口中的抽象方法的public abstract可以省略9.接口中的常量的public static final可以省略10.一个非抽象的类,实现接口的时候,必须将接口中的所
2021-03-27 09:42:21
154
原创 抽象类总结
JAVASE抽象类总结1.抽象类怎么定义?在class前添加abstract关键字就可以了。2.抽象类是无法直接创建对象的,是无法实例化的,所以抽象类是用来被子类继承的。3.final关键字和abstract关键字不可以联合使用,这两个关键字是对立的。4.抽象类的子类可以是抽象类,也可以是非抽象类。5.抽象类中不一定要有抽象方法,但是有抽象方法的类一定是抽象类。6.抽象类虽然无法实例化,但是抽象类中有构造方法,这个构造方法是供子类使用的。7.抽象方法怎么定义?public abstrac
2021-03-24 23:19:14
113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人