1.java 基础概念、集合操作、IO操作、线程操作、NIO操作等 2.SpringMVC、AOP、 IOC 、常用注解、事务管理、hibernate、Mybatis配置、Mybatis动态sql Spring3 MVC的优点:<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 1、Spring3 MVC使用简单,学习成本低。学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。 2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分) 3、Spring3 MVC的灵活是你无法想像的,Spring框架的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。 Struts2的众多优点: 1、老牌的知名框架,从Struts1起积累了大量用户群体。技术文档丰富。 2、其它方面略... (呵呵,是不是不公平?) 核心类与接口:<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< DispatcherServlet -- 前置控制器 |||||||||||||||||||| HandlerMapping接口 -- 处理请求的映射 HandlerMapping接口的实现类: SimpleUrlHandlerMapping 通过配置文件,把一个URL映射到Controller DefaultAnnotationHandlerMapping 通过注解,把一个URL映射到Controller类上 HandlerAdapter接口 -- 处理请求的映射 |||||||||||||||||||| AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上 Controller接口 -- 控制器 |||||||||||||||||||| 由于我们使用了@Controller注解,添加了@Controller注解注解的类就可以担任控制器(Action)的职责, 所以我们并没有用到这个接口。 HandlerInterceptor 接口--拦截器 |||||||||||||||||||| 无图,我们自己实现这个接口,来完成拦截的器的工作。 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< AOP 面向切面 @Component @Aspect public class Audience { @Before("execution(* com.lin.controller.LoginController.test(..))") public void before(){ RequestAttributes ra = RequestContextHolder.getRequestAttributes(); ServletRequestAttributes sra = (ServletRequestAttributes) ra; HttpServletRequest request = sra.getRequest(); //获取request 可以从中获取参数或cookie System.out.println("我是切面"); } } IOC(控制反转和依赖注入) 控制反转[Ioc]:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。 控制反转是一种思想,其具体实现就是依赖注入! 依赖注入[DI]:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注入到组件之中 实验1: <!--实验1:通过IOC容器创建对象,并为属性赋值 --> <!-- 需要由IOC容器创建对象的全类名 --> <!-- 为了便于从IOC容器中获取book对象,声明一个一个唯一的id值 --> <bean id="book01" class="com.neuedu.spring.bean.Book"> <property name="bookId" value="2001"></property> <property name="bookName" value="叁国演义"></property> <property name="author" value="罗贯中"></property> <property name="price" value="22.5"></property> </bean> @Test public void test01() { //1.创建IOC容器自身的对象 //指定配置文件以类路径为基准的配置文件名 ApplicationContext ioc= new ClassPathXmlApplicationContext("bean.xml"); //2.从IOC容器中获取指定的对象 Object bean = ioc.getBean("book01"); System.out.println(bean); } 3.微服务框架(spingboot\spingcloud) ring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的 轻量级代替品。无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级 Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能。 Spring Boot 主要目标是: l 为所有 Spring 的开发提供一个从根本上更快的入门体验 l 开箱即用,但通过自己设置参数,即可快速摆脱这种方式。 l 提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等 l 绝对没有代码生成,也无需 XML 配置。 https://blog.csdn.net/m0_37106742/article/details/64438892 最明显的特点是,让文件配置变的相当简单、让应用部署变的简单(SpringBoot内置服务器,并装备启动类代码),可以快速开启一个Web容器进行开发。 4.数据库(oracle、mysql)jdbc、sql、index、表分区等 (1).表空间及分区表的概念 表空间: 是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。 分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 (2).表分区的具体作用 Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。 分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。 什么时候使用分区表: 1、表的大小超过2GB。 2、表中包含历史数据,新的数据被增加都新的分区中。 (3).表分区的优缺点 表分区有以下优点: 1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。 2、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; 3、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可; 4、均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能。 5.Jquery选择器、Jquery事件 1、在页面中选取所有<p>元素并隐藏所有<p>元素 $('p').click(function(){ $(this).hide(); }); 2、id选择器,通过id选择指定的元素 $('#a').click(function(){ //选取第一个p元素 $('p:first').hide(); }); 3、class选择器 $('#d').click(function(){ $('.te').hide(); }); 4、点击p段落触发 $('p').click(function(){ $(this).hide(); }); 5、双击触发事件 $('p').dblclick(function(){ $(this).hide(); }); 6、鼠标滑过触发事件 $('#a').mouseenter(function(){ alert('你的鼠标滑过id="a"的元素上'); }); 6.java8特性、新扩展的功能、JVM参数、设计模式 1、Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 使用Lambda 表达式可以使代码变的更加简洁紧凑。 public class Java8Tester { public static void main(String args[]) { Java8Tester tester = new Java8Tester(); // 类型声明 MathOperation addition = (int a, int b) -> a + b; // 不用类型声明 MathOperation subtraction = (a, b) -> a - b; // 大括号中的返回语句 MathOperation multiplication = (int a, int b) -> { return a * b; }; // 没有大括号及返回语句 MathOperation division = (int a, int b) -> a / b; System.out.println("10 + 5 = " + tester.operate(10, 5, addition)); 2、变量作用域 lambda 表达式的局部变量可以不用声明为 final,但是必须不可被后面的代码修改(即隐性的具有final 的语义) 在Lambda 表达式当中不允许声明一个与局部变量同名的参数或者局部变量。 3、方法引用实例 public class Java8Tester { public static void main(String args[]) { List names = new ArrayList(); names.add("Google"); names.add("Runoob"); names.add("Taobao"); names.add("Baidu"); names.add("Sina"); names.forEach(System.out::println); } } 实例中我们将System.out::println 方法作为静态方法来引用。 7.大数据常用组件(hadoop、hive、hbase、spark、zookeeper) 8.常用开源项目,redis、activemq、mongdb 启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli。该命令会连接本地的 redis 服务。 $redis-cli redis 127.0.0.1:6379> redis 127.0.0.1:6379> PING PONG 如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。 $ redis-cli -h host -p port -a password 有时候会有中文乱码。 要在 redis-cli 后面加上 --raw (redis-cli --raw) 9.linux常见命令 ls -a 列出目录所有文件,包含以.开始的隐藏文件 ls -A 列出除.及..的其它文件 ls -r 反序排列 ls -t 以文件修改时间排序 ls -S 以文件大小排序 ls -h 以易读大小显示 ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来 按易读方式按时间反序排序,并显示文件详细信息 ls -lhrt 按大小反序显示文件详细信息 ls -lrS 列出当前目录中所有以“t”开头的目录的详细内容 ls -l t* 列出文件绝对路径(不包含隐藏文件) ls | sed "s:^:`pwd`/:" 列出文件绝对路径(包含隐藏文件) find $pwd -maxdepth 1 | xargs ls -ld 查看当前路径 pwd 查看软链接的实际路径 pwd -P 将文件test.log重命名为test1.txt mv test.log test1.txt 将文件log1.txt,log2.txt,log3.txt移动到根的test3目录中 mv llog1.txt log2.txt log3.txt /test3 将文件file1改名为file2,如果file2已经存在,则询问是否覆盖 mv -i log1.txt log2.txt 移动当前文件夹下的所有文件到上一级目录 mv * ../ 复制a.txt到test目录下,保持原文件时间,如果原文件存在提示是否覆盖 cp -ai a.txt test 为a.txt建议一个链接(快捷方式)cp -s a.txt link_a.txt cat主要有叁大功能: 1.一次显示整个文件:cat filename 2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为一个文件:cat file1 file2 > file -b对非空输出行号 -n输出所有行号
Java试题
1.java 基础概念、集合操作、IO操作、线程操作、NIO操作等 2.SpringMVC、AOP、…
本文来自网络,不代表培森的Blog立场,转载请注明出处:https://blog.xupeisen.com/archives/109