用友2018秋招Java笔试题(三)

常识:
对于GBK编码标准,英文占用1个字节,中文占用2个字节
对于UTF-8编码标准,英文占用1个字节,中文占用3个字节
对于Unicode编码标准,英文中文都是2个字节。这也是为什么叫做unicode

使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

一个线程可能因为不同的原因停止并进入就绪状态

实例变量是类的成员变量

1.final修饰变量,则等同于常量

2.final修饰方法中的参数,称为最终参数。

3.final修饰类,则类不能被继承

4.final修饰方法,则方法不能被重写。

接口没有构造函数。

 final 不能修饰抽象类

final修饰的方法可以被重载 但不能被重写

HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值

 

Double   b=100;//Error:(427, 18) java: 不兼容的类型: int无法转换为java.lang.Double

在Java程序运行时,系统自动通过System类创建三个静态的I/O对象,它们是1、2、3标准输入流对象

(1) InputStream
(2) 标准输出流对象 OutputStream
(3) 标准错误流对象ErrorStream

System 类包含一些有用的类字段和方法。它不能被实例化。

System 类提供的设施中,有标准输入、标准输出和错误输出流;

 

字段摘要
static PrintStream err
          “标准”错误输出流。
static InputStream in
          “标准”输入流。
static PrintStream out
          “标准”输出流

Java自带的序列化框架中,实现接口java.io.1程序可以定制序列化和反序列化的过程。

Serializable 

下面这段程序循环运行的次数是1

1

2

3

for (int i = 1; i >= 0; i = i + i) {

System.out.println(i);

}

i的类型为整型int,范围为-2^31到2^31-1,当程序运行完第31次后i的值超出范围,此时i的值变为负数(int范围内),程序停止运行

2147483647=2^31
-2147483648


题目描述
编写函数,获取两段字符串的最长公共子串的长度,例如:S1= GCCCTAGCCAGDE ,S2= GCGCCAGTGDE,这两个序列的最长公共子串是GCCAG。

 

题目描述
请用自己熟悉的高级语言编程,统计整数n以二进制数表示时,它包含的0的个数。例如n = 10时,其二进制数1010包含的0的个数为2。


题目描述
已知一个整数数组A[n],写出算法实现将奇数元素放在数组的左边,将偶数放在数组的右边,且奇数升序排列,偶数降序排列,并给出时间复杂度和空间复杂度。

 

```
public   static   void  test_niuke_3(){

      int[] arr={1,2,3,4,5,6,7,8,9,0}  ;//  1,3,5,7,9 8,6,4,2,0
      Solution(arr);
  }
    /**
     * 定义奇数放在数组左边
     * 偶数放在数组右边
     * @param arr
     * @return
     */
   public   static  int[]  Solution(int[] arr){
   if(arr==null ||arr.length==0){
       return null;
   }
   int[] Evn= new int[arr.length];
   int[] Odd=new int[arr.length];

    int  iEvnNum=0;
    int  iOddNum=0;
       for (int i = 0; i

           if(arr[i]%2==0){
              Evn[iEvnNum++]=arr[i];
           }
           if(arr[i]%2==1){
               Odd[iOddNum++]=arr[i];

           }
       }
       Arrays.sort(Odd,0,iEvnNum);//指定范围升序
       System.out.println(Arrays.toString(Odd));
      Arrays.sort(Evn,0,iEvnNum);//
       System.out.println(Arrays.toString(Evn));
       for (int i = iEvnNum-1; i >=0 ; i--) {
          Odd[iOddNum+iEvnNum-1-i]=Evn[i];
       }
       System.out.println(Arrays.toString(Odd));
       return Odd;
   }

```
题目描述
已知关系模式: 
Student(S#,Sname,Sage,Ssex) 学生表, 
Course(C#,Cname,T#) 课程表, 
SC(S#,C#,score) 成绩表, 
Teacher(T#,Tname) 教师表 。 
其中,S#代表学生号,C#代表课程号,T#代表教师号。 
根据上述描述,请写出如下的查询语句: 
1、查询“001”课程比“002”课程成绩高的所有学生的学号; 
2、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名; 
3、查询每门功成绩最好的前两名

参考答案

1、查询“001”课程比“002”课程成绩高的所有学生的学号;

答案:

1

2

3

4

select a.s#

from (select s#,score from SC where C#=’001′) a,

(select s#,score from SC where C#=’002′) b

where a.score>b.score and a.s#=b.s#; 

2、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;

答案:

1

2

3

4

5

6

7

select S#,Sname

from Student,SC

where Student.S#=SC.S# 

and C# in 

(select C# 

from SC 

where S#='1001');


3、查询每门功成绩最好的前两名

答案:

1

2

3

4

5

6

7

8

select t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数

from SC t1

where score IN 

(SELECT TOP 2 score

from SC

where t1.C#= C#

order by score DESC )

order by t1.C#; 

你可能感兴趣的:(用友2018秋招Java笔试题(三))