1.freemarker的入门 1.freemarker的介绍Freemarker是模板引擎,一种基于模板和要改变的数据,并用来生成输出文本html网页的通用工具。不是面向最终用户,而是一个java类库,程序员可以嵌入开发产品的组件。
02MyBatisPlus条件构造器,自定义SQL,Service接口 1.用法通过MP的Wrapper来构建复杂的where条件,然后自己定义SQL语句剩下的部分。2.案例将id在指定范围内的用户(1,2,4)的余额扣减指定值把mp构建好的条件传递到mapper,进行sql组装①基于Wrapper构建where条件@Test// 更新条件的ids// 更新的内容// 编写where更新条件// 用户自定义SQL②用户自定义mapper方法参数中用Param注解声明wrapper变量,必须是ew③编写sql语句,进行where拼接。
06_es分布式搜索引擎2 RestAPI中其中构建DSL是通过HighLevelRestClient中的resource()来实现的,其中包含了查询、排序、分页、高亮等所有功能。可以排序的字段:keyword类型,数值类型,地理坐标类型,日期类型。使用 function score query,可以修改文档的相关性算分(query score),根据新得到的算分排序。RestAPI中其中构建查询条件的核心部分是由一个名为QueryBuilders的工具类提供的,其中包含了各种查询方法。查询上海的酒店,品牌是皇冠假日或华美达。
03初始Docker 概念:镜像将应用程序以及系统函数库,环境,配置,依赖打包而成。结构:以mysql镜像为例子①基础镜像:mysql应用依赖的系统函数库,环境,配置,文件。②层:在基础镜像基础上添加安装包,依赖,配置,每次操作后都形成一个层。镜像是分层的③入口:启动的脚本语法概念:Dockerfile是一个文本文件,包含一个个指令,用指令说明执行的操作来构建镜像。每一个指令形成一层Layer3.案例:基于Ubuntu镜像构建一个新镜像,运行一个java项目Dockerfile# 指定基础镜像。
07JVM_内存模型和CAS与原子类 1.介绍①CAS全称compare and swap比较并交换②当多个线程同时操作同一个资源,只能有一个线程操作成功。但是不会阻塞其他线程,其他线程只会收到操作失败的信号。
6.linux磁盘分区、挂载 整个文件系统包含一整套的文件和目录。且将一个分区和一个目录练习起来。这时载入的一个分区在一个目录下获得。①支持无限多个主分区(但操作系统可能限制,比如windows 下最多128 个分区)②最大支持 18EB 的大容量(1EB=1024 PB,1PB=1024 TB )一个独立唯一的文件结构。Linux每个分区组成整个文件系统的一部分。①linux不管多少分区,分给哪个目录使用。②应用:查询/opt目录的占用磁盘的情况,深度为1。④MBR 最大只支持 2TB,但拥有最好的兼容性。③扩展分区要占一个主分区。
06JVM_类加载器 当不满足开发时,可以自定义加载器。比如用网络加载Java类,为了保证传输中的安全性,采用了加密操作,那么以上3种加载器就无法加载这个类,这时候就需要自定义加载器。实现步骤①继承ClassLoader父类②遵从双亲委派模式,重写findClass方法③读取类文件的字节码④调用父类的defineClass方法加载类⑤使用者调用该类的加载器loadClass方法。
05JVM_类加载阶段 ③外部通过访问Person类的Class对象获取Person的类数据结构。通过class类提供的接口,可以获得目标类所关联的.class文件的具体数据结构:方法、字段信息。①加载的类在JVM创建相应的类结构instanceKlass的元数据存储在方法区(jdk1.8在元空间内),但_java_mirror的java类镜像存储在堆中。该Class对象在加载类的过程创建的,每个类都有一个Class类型的对象。④类加载器的loadClass方法,只会加载,不会解析和初始化。得到类,字段,方法在内存中的地址。
04JVM_语法糖 因为编译器在创建匿名对象时,将复制给匿名对象的value属性,x就不能发生变化了,值固定住了。默认构造器没有写任何的构造方法,但经过编译器编译成字节码过程中,会加上调用父类Object的无参构造方法。如果调用foo()无参方法,那么创建一个空的数组new String[]{},而不是传递null。调用foo(实参1,实参2)方法,编译器会根据实参的数量生成一个String数组。③MALE的ordinal()=0,FEMALE的ordinal()=1。Number m()调用子类的方法,同时符合重写的规则。
3.linux的进程和服务管理 1)在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。3)每个进程都可能以两种方式存在的。前台与后台4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。