jedis,maven和反射的简单理解

Redis:

1.Redis的数据结构:

redis的存储: key:value的格式进行存储.

其中key都是字符串,value有5中不同的数据结构

* value的数据结构:

1)字符串类型 String

2)哈希类型 hash -> map格式

3)列表类型 list -> linkedList格式, 支持重复元素

4)集合类型 set -> 不允许重复元素

5)有序集合类型 sortedset -> 不允许重复元素,且元素有顺序

* 通用命令:

1)keys * : 查询所有的键

2)type key: 获取键对应的value的类型

3)del key: 删除指定的key value

___________________________________________________

Jedis:

1.概念:java操作redis数据库的工具

2.使用步骤:

1).下载jedis的jar包

* commons-pool2-2.3.jar

* jedis-2.7.0.jar

2).使用

a.获取连接

b.相关操作 - 增删改查

c.关闭连接

3.Jedis的连接池: JedisPool

1)使用步骤:

a.创建JedisPool连接池对象

b.调用方法 getresource() 获取jedis连接

2).优化 - 连接池工具类

* 使用JedisPoolutils

__________________________________________________________

Maven:项目管理工具

1.作用:

* maven 统一集中管理所有的依赖包.

* maven会自动解决重复和冲突问题

2.统一管理jar包的地方:仓库

1)本地仓库 - 个人维护

2)私服(远程仓库) - 公司维护

3)中央仓库 - maven团队维护

3.Maven的安装和配置

* 安装:将bin目录添加到环境变量中

命令行查看版本: cmd -> mvn -v

* 配置:配置本地仓库路径 D:\Maven\repository

1.解压 repository

<localRepository> 配置本地仓库

* 路径上不要出现: repository/repository/xx..

* Default: ${user.home}/.m2/repository

* 默认:${user.home}:个人主目录

* <localRepository>

D:\Maven\repository(自己的本地仓库位置)

</localRepository>

* <mirror>:配置的是中央仓库

4.Maven项目目录结构:

|- src:

|- main:主程序,主要代码

|- java:java代码 (编译后和配置文件在一起)

|- resources:配置文件

|- webapps:web资源(取代原工程中的web)

|- test:测试代码

|- java:测试用的Java文件(基本是单元测试)

|- resources:测试用的配置文件

[如果没有,则找main中的配置文件]

|- target:编译后的文件

|- pom.xml:maven核心配置文件

* jar包依赖(重要)

* 版本信息

* 打包方式

* 插件

...

5.Maven的生命周期:

1)不同的命令称之为不同的生命周期

2)常用命令:

* clean:清除编译的文件

* compile:编译了主⽬录的⽂件

* test:编译并运⾏了test⽬录的代码

* package 打包

* tomcat7:run ⼀键启动

* deploy:上传到服务器,用于发布项目

3)生命周期:

* 不同的生命周期:

clean 和 compile -> 互不干扰

* 相同的生命周期

test 和 compile -> 会先执行compile

_______________________________________________________________

类加载器:

1.作用:加载字节码文件(.class)

2.分类:

1)引导类加载器:加载的都是最基础的文件

* 最基础的类: java.lang.String

2)扩展类加载器:加载的都是最基础的文件

* JDK的扩展类(基本上不考虑)

3)应用类加载器:第三⽅jar包和⾃⼰编写java⽂件

3.面试题:

* 自己写一个 java.lang.String 能不能用?

* 什么叫做双亲委派模型?

先通过引导类加载器和扩展类加载器 -> 基础的类加载器

最后才是去找应用类加载器

在加载所有类之前,都先要通过引导类加载器,扩展类加载器先去加载对应的类,当找不到对应要加载的类的时候,才会通过应用类加载器去加载.最终完成加载这个类的过程.

________________________________________________________________

反射:

1.特点: 通用性

2.将类的各个组成部分封装为其他对象,这就是反射机制

例如:

* 构造方法(Constructor)

* 属性(Field)

* 方法(Method)

3.获取class对象的方式:

1. Class.forName("全类名"):将字节码⽂件加载进内存,返回Class对象

多⽤于配置⽂件,将类名定义在配置⽂件中。读取⽂件,加载类

2. 类名.class:通过类名的属性class获取

多⽤于参数的传递

3. 对象.getClass():getClass()⽅法在Object类中定义着。

多⽤于对象的获取字节码的⽅式

4.工厂模式

* 工厂都是为了生产方法 - 都是静态方法

* 接口的意义: 不管使用的实现类是哪一个,全部都是接口类型

* 结论: 接口 + 工厂 -> 完全解耦合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值