面试_存储过程……0042
今天面试了两家,上午是某国企下属公司--A,下午是某100-499人民营--B。有面试的时候总是很愉快啊,有面试就有收获,嘿嘿。
上午去A,进去二话不说,先扔过来一份信息表和一份笔试题,习惯了,提笔就写。
其中有一道分割字符串的问题(T1)有点蒙,题目没看太明白,先空出来了,等到技术面试时,问清楚题意才又把解决方法说了一下。
T1题目大概:在分割字符串的时候,怎样才能保证汉字的完整性,例:“汉 ABC”4,截取后应为“汉 AB”;“汉 ABC 字 DEF”截取后应为“汉 ABC”,而不是“汉ABC+‘字’的半个”。(题目表述不是很清楚,当时没看明白要干嘛。)
所以我的想法是先将字符串转换成char[]来实现截取,如果是汉字的话,那么转换成的char字符应该>0xff的,否则就是正常的字母或数字等单编码格式的
public static String truncate(String str, int byteLength) {//将要处理的字符串和字节长度传入 if (str == null) {//为空则返回 return null; } if (str.length() == 0) { return str; } if (byteLength < 0) { throw new IllegalArgumentException("Parameter byteLength must be great than 0"); } char[] chs = str.toCharArray();//将字符串转化为Char数组 int i = 0; int len = 0; while ((len < byteLength) && (i < chs.length)) { len = (chs[i++] > 0xff) ? (len + 2) : (len + 1);//大于一字节则后移2位 } if (len > byteLength) { i--; } return new String(chs, 0, i); } }
还有就是发现几次面试数据库都是重点,存储结构、左右内外连接、SQL Server2000的索引类型有哪些,等。
float+float有什么后果?
编程中没遇到过的同学可能要懵了,那能有啥后果?还是float呗,我也是这么想的,没反应过来想问什么。后来我才知道,人家是想问为啥结果不是double类型的。
科普:因为浮点数在系统中使用的是二进制的科学计数法,浮点运算有误差。很多编程语言都有这种问题。所以引入了专门的十进制运算的类型或者函数来进行计算。
在Java中,就是BigDecimal类。
float a=-3.4f; float b=3.0f; DecimalFormat ddf1 = new DecimalFormat("#0.0"); System.out.println(ddf1.format(a+b));
这样结果就会是-0.4了,需要指定精度。
------------------------------------------------------------------
今天就到这里啦,下线学习去。
题外话:今年的就业形势真的不容乐观,中美日韩朝关系紧张,好多外包公司或有外包项目的都取消了。行业不景气啊,╮(╯▽╰)╭。

浙公网安备 33010602011771号