其他分享
首页 > 其他分享> > 广电面试题

广电面试题

作者:互联网

1.Java中&与&&的区别
首先,他俩都是与的逻辑运算。
其中&在程序运行时,左右两边的语句都会执行,在判断上一假则假,全真为真;
&&在程序运行时,全真则真,左边为false时,结果为false,直接结束
详细讲解及代码实现https://www.cnblogs.com/hongten/p/hongten_java_yu.html
2.Java中HashMap和HashSet、list的区别
1) HashMap是实现Map<K,V>接口的一个实体类,它对键值做了一对一的映射关系,当然里面键值不能重复。Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。
2) HashSet是实现Set接口的一个实体类,数据是以哈希表的形式存放的,里面的不能包含重复数据。Set接口是一种一个不包含重复元素的 collection。Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 Set接口主要实现了两个实现类:HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
HashMap与HashSet区别
然后这里总结的特别好
HashMap可以看作三个视图:key的Set,value的Collection,Entry的Set。 这里HashSet就是其实就是HashMap的一个视图。

3)List的特征是其元素以线性方式存储,集合中可以存放重复对象。

4)联系与区别
参考文章
https://blog.csdn.net/gavinli2588/article/details/78696048

自动扩展的数组,所以有了List
没有重复的数组,所以有了set

3.简述什么是数据库事务,并写出在Java中操作数据库事务的伪代码
数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
一个数据库事务通常包含了一个序列的对数据库的读/写操作。它的存在包含有以下两个目的:
1)为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
2)当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。
3)事物的四大特点:
(1)atomicity(原子性)表示一个事务内的所有操作是一个整体,要么全部成功,要么全部失败。
(2)consistency(一致性)表示一个事物内有一个操作失败时,所有更改过的数据都必须回滚到修改前的状态。
(3)isolation(隔离性)事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。
(4)durability(持久性)持久性事务完成之后,他对于系统的影响是永久性的
Java中操作数据库事务的实现
https://blog.csdn.net/hao_vip/article/details/79321254

4.Java和oracle中将当前时间按照如下格式输出分别怎么写,2019-04-22 13:28:30
Java实现

 - package com.java; import java.text.SimpleDateFormat; import
   java.util.Date; public class Test { 	public static void main(String[]
   args) { 		SimpleDateFormat simpleDateFormat = new
   SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 		String format =
   simpleDateFormat.format(new Date()); 		System.out.println(format); 	}
   }

oracle实现
Oracle中如何获取系统当前时间

 - select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; 
  ORACLE里获取一个时间的年、季、月、周、日的函数  select  to_char(sysdate, 'yyyy' )  from
  dual; --年  select  to_char(sysdate, 'MM' )  from dual; --月  select 
   to_char(sysdate, 'dd' )  from dual; --日  select  to_char(sysdate,
   'Q')  from dual; --季  select  to_char(sysdate, 'iw')  from dual; --周
   //时间格式化方法 to_date('2009-12-25
   14:23:31(时间)','yyyy-mm-dd,hh:mi:ss'(格式))

5.Java类、接口、抽象类区别和特点

	1、一个类可以实现多个接口,但是却只能继承最多一个抽象类;
	2、抽象类可以包含具体的方法,接口的所有方法都是抽象的;
	3、抽象类可以声明和使用字段;接口则不能,但接口可以创静态的final常量;
	4、接口的方法都是public的,抽象类的方法可以使public,private,protecte或者是默认的packag;
	5、抽象类可以定义构造函数,但是接口不行。

6.JavaScript如何判断一个字符串是不是数字

第一种方法:isNaN()
使用js自带全局函数isNaN(), isNaN()返回一个Boolean值,如下 :
var c="hello"; //字符串
isNaN(c); //返回一个true;
var c=10; //数字
isNaN(c);//返回一个false

如果以上c为一个空串或是一个空格,isNaN将把c当作数字0来处理,所以检查不严谨

第二种方法: 利用typeof的返回值

验证方法:如果返回的值为Number,则为数字;如果返回值为String或其它,则不是数字。如下所示:
var a=123;
var b='123abc';
typeof(a) //Number
typeof(b) //String

7.get post 区别,forward redirect 区别

get post 区别

最直接的区别,GET请求的参数是放在URL里的,POST请求参数是放在请求body里的;
GET请求的URL传参有长度限制,而POST请求没有长度限制;
GET请求的参数只能是ASCII码,所以中文需要URL编码,而POST请求传参没有这个限制;

forward redirect 区别

转发是服务器行为,重定向是客户端行为。为什么这样说呢,这就要看两个动作的工作流程: 

转发过程:客户浏览器发送http请求--->web服务器接受此请求--->调用内部的一个方法在容器内部完成请求处理和转发动作--->
将目标资源 发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的
容器内的request。在客 户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是
浏览器只做了一次访问请求。 

重定向过程:客户浏览器发送http请求--->web服务器接受后发送302状态码响应及对应新的location给客户浏览器--->客户浏览器发现
 是302响应,则自动再发送一个新的http请求,请求url是新的location地址--->服务器根据此请求寻找资源并发送给客户。在这里
  location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示
  的是其重定向的 路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。 


重定向,其实是两次request:第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到
地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。

8.web乱码原因和解决办法

web tomcat:默认是ISO8859-1,不支持中文的,客户端和服务器端编码格式不一致造成的
解决办法:设置请求和响应的编码格式为utf-8
request.setCharacterEncoding("utf-8")
response.setContentType("text/html;charset=UTF-8");

10.代码实现对一个目录中的所有文件的遍历

public void traverseFolder(String path) {
	    string path = “xxx/xxx/xxx/xx”;
        File file = new File(path);
        if (file.exists()) {
            File[] files = file.listFiles();
            if (null == files || files.length == 0) {
                System.out.println("文件夹是空的!");
                return;
            } else {
                for (File file2 : files) {
                    if (file2.isDirectory()) {
                        System.out.println("文件夹:" + file2.getAbsolutePath());
                        traverseFolder2(file2.getAbsolutePath());
                    } else {
                        System.out.println("文件:" + file2.getAbsolutePath());
                    }
                }
            }
        } else {
            System.out.println("文件不存在!");
        }
    }

11.费波纳茨序列
序列 1 1 2 3 5 8 13 21 34
第n项为 A(n) = A(n-2)+ A(n-1)
x写出两种计算的程序,比较算法复杂度:
方式一:不用递归
方式二:递归调用
计算出第N个是多少

   public class DiGui {
    public static  void main(String[] args){
        //数列:1,1,2,3,5,8 ......
        System.out.print( f(6) );//输出数列的第几位
    }
    public  static int f(int n){
        if( n == 1 || n == 2 )
            return 1;
        else
            return f( n - 1 )+f( n - 2 );
    }
}

12.代码实现单例模式

public class Singleton {
    private static Singleton singleton = null;
    private Singleton(){}
    public static Singleton getSingleton() {
        if(singleton == null) singleton = new Singleton();
        return singleton;
    }
}

13.冒泡排序

  public static void bubbleSort(int []arr) {
               int[] arr = {12,23,34,56,56,56,78};
        for(int i =0;i<arr.length-1;i++) { 
            for(int j=0;j<arr.length-i-1;j++) {//-1为了防止溢出
                if(arr[j]>arr[j+1]) {
                    int temp = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
            }
            }    
        }
    }

14.已知有一个学生的成绩表里的字段有编号,姓名,成绩,写出SQL语句查询最高成绩的学生

查询最高成绩select max(score)  from 表名 group by score

select * from 表名  where  score =  (select max(score)  from 表名 group by score)

标签:面试题,浏览器,请求,广电,接口,数据库,public,select
来源: https://blog.csdn.net/qq_20343841/article/details/89631076