欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

程序开发面试题

程序员文章站 2022-08-04 17:02:27
面试题 1. 进制之间的转换 // 十进制转化为十六进制,结果为c8。 integer.tohexstring(200); // 十六进制转化为十进制,结果140。 integer.parseint...

面试题

1. 进制之间的转换

// 十进制转化为十六进制,结果为c8。

integer.tohexstring(200);

// 十六进制转化为十进制,结果140。

integer.parseint("8c",16);

//十进制转二进制

integer.tobinarystring(int i);

2.质数的定义

只有1和它本身两个因数的自然数

3.关键字null

null是一种特殊的值,可以将其赋给任何引用类型,也可以转化成任何类型。但不可以赋给变量类型,不可以赋给基本类型,如int,boolean等。

4.关于string

//string转成string[]

string[] a = s.split("");

//将char转成string,string.valueof()可以也可以将int转成string类型

string s = string.valueof('c');

//数组不能直接通过tostring的方式转成字符串string,必须通过 stringbuffer

string[] str = {"abc", "bcd", "def"};

stringbuffer sb = new stringbuffer();

for(int i = 0; i < str.length; i++){

sb. append(str[i]);

}

string s = sb.tostring();

//数组转list

string[] arr = new string[] {"str1", "str2"};

list list = arrays.aslist(arr);

//如果是直接想新建一个list对象,则如下

list list = new arraylist();

//list转数组

list list = new arraylist();

list.add("str1");

list.add("str2");

int size = list.size();

string[] arr = (string[])list.toarray(new string[size]);

//treeset和treemap可以自动排序,直接往里扔数即可,内部自动排序,很强大!!

treeset hs = new treeset();

string s1 = "abf";

string s2 = "acd";

string s3 = "abc";

hs.add(s1);

hs.add(s2);

hs.add(s3);

system.out.println(hs);

//collections中提供了逆序的功能

collections.reverse(list);

5.的范式问题

这里把常用的第一、二、三范式做一下说明:

1nf:第一范式,强调的是原子性,即列不能再分解为其他的列,比如表【联系人】:姓名、性别、电话,这张表是不满足1nf的,因为电话这一列一般还会分成公司电话、家庭电话,所以不满足1nf的原子性

2nf:第二范式,先必须满足1nf,强调的是其他属性对主键的完全依赖,主要是针对联合主键,如果是单一主键,满足1nf,那么这张表也必定满足2nf。如【选课关系】:学号, 姓名, 年龄, 课程名称, 成绩, 学分,关键字为组合【关键字学号, 课程名称】,这里可以【学分】只依赖于【课程名称】的,【姓名、年龄】则只依赖于【学号】。只有【成绩】是依赖于【学号和课程名称】的(这才是完全依赖),前两者的依赖不是完全依赖,所以这里的【选课关系】不满足2nf

3nf:必须满足2nf,并且不依赖其他非主属性,他们之间不存在依赖传递关系,通俗点讲,要求一个表中不包含已在其他表中包含的非主键关键字的信息。如一张表:学号、姓名、年龄、所在学院、学院地点、学院电话,关键字为【学号】,由于是单一的主键,首先他肯定是满足2nf的,然后看由于这里的【学院地点和学院电话】显然是依赖于【学院】这个属性的,但是学院地点和学院电话显然被包含在了这张表中了,所以不满足3nf。