1.Tomcat中startup.bat和startup.sh文件的区别?
tomcat的bin文件夹中存在一份.bat文件和相对应的.sh文件,一个是为了在window系统上执行的文件,另一个是linux下的批处理文件。例如:startup.bat和startup.sh。
2.jquery的定时器setTimeOut()和setInterval()的区别
setTimeOut(“getSome”,”5000”)是过5秒执行getSome方法
setInterval(“getSome”,”5000”)是每隔5s执行一次getSome方法
3.java中的多态你怎么理解?
1)怎么理解多态?一种事物的多种存在形式。比如男人是人,女人也是人。
2)使用场景:
方法重载和方法重写
子类对象的多态性,前提有继承关系,并且子类重写了父类的方法。使用父引用指向子实例,使用时调用的是子类的方法。但是在编译时,是点不出子类特有的方法的。除非向下转型。
package com.g_; public class Teacher extends Person{ @Override public void eat() { System.out.println("学生吃饭"); } @Override public void work() { System.out.println("teacher work"); } public void startClass() { System.out.println("老师开课"); } }
package com.g_; public class Student extends Person{ @Override public void eat() { System.out.println("学生吃饭"); } @Override public void work() { System.out.println("student work"); } public void doHomework() { System.out.println("写作业"); } }
package com.g_; public class Person { public void eat() { System.out.println("人吃饭"); } public void work() { System.out.println("person work"); } }
package com.g_; public class Demo { public static void main(String[] args) { show(new Student()); System.out.println("--"); show(new Person()); } public static void show(Person p) { p.eat(); p.work(); if(p instanceof Student) { Student s = (Student)p; s.doHomework(); } if(p instanceof Teacher) { Teacher t = (Teacher)p; t.startClass(); } } } |
Show方法传入person实例,如果没有继承和这层多态关系,那么想要实现传入student和teacher的show方法还要写两个,分别传入。这样代码冗余度增加。故使用多态的好处是减少了代码冗余,提高了代码的简洁性和可扩展性
4.Spring基于注解的方式是怎么实现的?
Spring的注解包含两类,一类写在类上面,一类写在类里面
写在类上的有@component、@Controller @service @repository等
Spring容器根据注解的过滤规则扫描读取注解Bean定义类,并将其注册到Spring IoC容器中。
写在类里面的有@autowired、@resource等。SpringIoC容器通过Bean后置注解处理器解析Bean内部的注解。Spring对注解的支持主要都是通过反射来获取相应的注解,来做相应的处理
5.@resource和@autowire
@resource 由java jdk提供
@autowire 由Spring提供
6.java的面向对象怎么理解?
面向对象就是把构成问题的事物分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述某个事物在解决问题中的行为。
类是面向对象中的一个很重要的概念,因为类是很多个具有相同属性和行为特征的对象所抽象出来的,对象是类的一个实例
类具有三个特性:封装、继承和多态。
- 封装:核心思想就是“隐藏细节”、“数据安全”,将对象不需要让外界访问的成员变量和方法私有化,只提供符合开发者意愿的公有方法来访问这些数据和逻辑,保证了数据的安全和程序的稳定。
- 继承:子类可以继承父类的方法,并对其进行拓展。
- 多态:同一种类型的对象执行同一个方法时可以表现出不同的行为特征。通过继承的上下转型、接口的回调以及方法的重写和重载可以实现多态。
7.除了数据结构中的排序、查找算法,你还知道(或者理解)哪些算法?
贪心算法,每一次都从当前步骤取得最优解,局部最优到整体最优。
递归
动态规划
穷举
8.java反射是怎么理解?
含义:所谓的反射机制就是java语言在运行时拥有一项自观的能力。通过这种能力可以彻底的了解自身的情况为下一步的动作做准备。
Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method。
Java反射的作用:在Java运行时环境中,对于任意一个类,可以知道这个类有哪些属性和方法。对于任意一个对象,可以调用它的任意一个方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。
9.Enum和enum的区别
enum是一个关键字,使用enum定义的枚举类本质上就相对于一个类继承了Enum这个抽象类而已。
10.实现一个饿汉式单例模式
11.@controller和@restController的区别