栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA-FAQ文档

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA-FAQ文档

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.)包装类型可以用于泛型,而基本类型不可以(泛型的类型只能为引用类型)

List list=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 #正确语法

后续持续更新.....

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298943.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号