1.java底层是如何运行的?
答:先通过javac将Java源文件编译成字节码(.class文件)--JVM加载并运行.class文件(JVM加载时需要调用lib库来编译.class文件)
2.为什么Java中只能单一继承?
答:Java中类不能多继承类是为了安全。因为无论是抽象类还是非抽象类都包含非抽象的方法(非抽象类也可能没有),当类可以多继承类时,被继承的不同的父类可能会有同名同参的方法,如果子类也没有重写这个同名同参的方法,则在子类的实例调用这个方法的时候就会出现冲突。
3.如果给定一个集合,如何进行排序?
答:通过collections的sort方法(前提是基本数据类型);如果给对象排序的话,该对象需要实现Comparable接口,然后调用Collections的sort()里面需指定list和Comparator对象并重写compare(里面是两个比较的对象),例:
public static void main( String[] args ){
Person p=new Person();
p.setName("张三");
p.setAge(23);
p.setAddress("太原");
Person p2=new Person();
p2.setName("李四");
p2.setAge(20);
p2.setAddress("大同");
Person p3=new Person();
p3.setName("王五");
p3.setAge(18);
p3.setAddress("西安");
Listlist=new ArrayList();
list.add(p);
list.add(p2);
list.add(p3);
Collections.sort(list, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
return ((Person)o1).getAge()-((Person)o2).getAge();
}
});
System.out.println(list);
}
}
注意:Set集合添加及本来型数据输出的是排序后的结果,原因是hoshCode值导致的,而且Set所说的无序指的是插入的数据时的顺序与输出的时的顺序不一致。
4.如何实现字符串的反转?
答:
1)通过StringBuilder的reverse()方法,他会将字符串序列被序列的相反代替
2)通过String的charAt()方法获取每个字符你,然后与新的空字符串连接。
5.包装类与基本类型的区别?
答:
1)包装类型可以为null,基本类型不可以
class Writer {
private Integer age;
private String name;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
呢么为什么pojo的属性必须要用包装类想呢?
《阿里巴巴 Java 开发手册》上有详细的说明
数据库的查询结果可能是 null,如果使用基本类型的话,因为要自动拆箱(将包装类型转为基本类型,比如说把 Integer 对象转换成 int 值),就会抛出 NullPointerException 的异常。
2.)包装类型可以用于泛型,而基本类型不可以(泛型的类型只能为引用类型)
Listlist=new ArrayList<>(); //会有错误提示:Syntax error, insert "Dimensions" to complete ReferenceType(语法不允许) List list = new ArrayList<>();
3.)基本类型比包装类型更高效
基本类型在栈中直接存储的具体数值,而包装类型则存储的是堆中的引用
相比较于基本类型而言,包装类型需要占用更多的内存空间。假如没有基本类型的话,对于数值这类经常使用到的数据来说,每次都要通过 new 一个包装类型就显得非常笨重,所以就有了自动拆装箱。
4.)自动拆装箱
把基本类型转换成包装类型的过程叫做装箱。
反之,把包装类型转换成基本类型的过程叫做拆箱
Integer i1=new Integer(10);//手动装箱 int i2=i1.intValue();//手动拆箱 Integer i3=10;//等价于integer i3=Integer.valueOf(); int i4=i3;//等价于int i4=i3.intValue();
也就是说,自动装箱是通过Integer.valueOf()完成的;自动拆箱是通过 Integer.intValue() 完成的;
6.Tomcat默认的端口号是多少?
答:默认端口号是:8080,但该端口不是唯一固定的端口,可以根据修改tomcat的配置文件 件(server.xml)修改后重启服务即可。
weblogic的默认端口号是:7001,weblogic是什么:weblogic_百度百科
Oracle数据库默认端口号为:1521。
SQL server数据库默认端口号为:1433
7.sleep与wait 的区别:
答:sleep()是Thread类中的静态方法,使调用的线程进入睡眠状态 ,它不会释放锁,当调用 该对象的synchronized方法时,其他线程只能等待该线程结束后方可进入执行,sleep是基于制定的具体休眠时间过后自动唤醒与其他线程争夺CPU资源。
wait()是object类中的方法,它会释放锁,不会阻塞其他线程,当调用wait方法时会将调用者的线程挂起,直到其他线程调用同一个对象的notify方法才会重新激活调用者。 sleep需要捕获异常,而wait,notify,notifyAll则不需要捕获异常。
具体案例可看:sleep() 和 wait() 的区别_yinhuanxu-CSDN博客_sleep和wait
8.如何解决git冲突问题?
答:https://jingyan.baidu.com/article/3ea514898fbf1552e61bbad5.html
怎样解决git提交代码冲突 - liguangsunls - 博客园 9. Mysql的数据类型有哪些?
答: 都知道Java中有int(4个字节)、char(1个字节)...
这些类型也都不是随便用的,使用前都会考虑是否会越界,是否合适,当然MySQL也一样,同样需要考虑这些因素。
主要类型有这几个:数值类型、字符串类型、日期和时间类型,详情请见:MySQL 数据类型 | 菜鸟教程//MySQL数据库篇之数据类型 - 暮光微凉 - 博客园
总结:
- 如果数据长度都一样,就用char,比如身份证号、手机号
- 如果数据长度不一样,就用varchar,比如名字、地址,但要保证不越界
- 定长的磁盘空间比较浪费,但效率高
- 变长的磁盘空间比较节省,但效率低
日期和时间类型:
- datetime 时间日期格式 ‘yyyy-mm-dd HH:ii:ss’ 表示范围从1000到9999,占用八字节
- date:日期 ‘yyyy-mm-dd’,占用三字节
- timestamp:时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss格式和datetime完全一致,占用四字节
enum和set
enum:枚举,单选类型
语法:
enum(‘选项1’, ‘选项2’, ‘选项3’…)
set:集合,多选类型
语法:
set(‘选项1’, ‘选项2’, ‘选项3’…)
例:建一个兴趣爱好调查表votes,比如(游泳、跳舞、弹吉他、滑雪、冲浪)中选择(可以多选),(男、女)【单选】
create table votes( -> name varchar(20), -> hobby set('游泳','跳舞','弹吉他','滑雪','冲浪'), -> gender enum('男','女') -> );
插入数据:
insert into votes values('calm','跳舞,滑雪,游泳','女');
insert into votes values('lilei','冲浪,弹吉他',1);
insert into votes values('jane','冲浪,跳舞,弹吉他','2');
insert into votes values('helon','滑雪','男');
10.MySQL是否支持delete使用表的别名?
答:是支持的,只不过不能像select一样直接用,它需要在from关键字前添加别名,例如:
#查询语句: select * from sys_menus m where m.id=1 #删除语句: delete from sys_menus m where m.id=154 #错误语法 delete m from sys_menus m where m.id=154 #正确语法
后续持续更新.....



