黑马程序员技术交流社区
标题: 分享一些面试的技巧 [打印本页]
作者: wei19910428 时间: 2016-5-25 22:56
标题: 分享一些面试的技巧
枚举
1、定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。examTest/Test12
2、自定义枚举week表示星期几,要求每个枚举值都有tolocaleString方法。返回中文格式的星期几。ExamTest/Test27
编程能力:
======1.求三位数的质数,只能被本身和1整除!!!(歇菜这道题)
===========2,键盘录入5个数,存储到一个数组中,取最大值和最小值
=========3、编写程序计算12+22+32+....+1002的和.
=========4、编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
思路:判断整数中是否包含7.
* 要运用 整数 转 字符串、是否包含 方法contains()
* 整数-->字符串-->是否包含7
========5、判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
思路1:反转字符串 再看是否等于 原字符串
* 使用方法: reverse(),chatAt()
*
* 思路2:直接转变为字符数组 ,再前后对应对比
* 使用方法toCharArray(),charAt()
=====6、排序有哪几种方法?请列举。并用JAVA实现一个快速排序.
========7、编写一个程序,获取10个1至20的随机数,要求随机数不能重复。examTest/Test20
注意:
* 1、随机数 生成函数 Maths.random()
* 2、强制转换的结合性 要高于 *法
8、解释一下递归;
自己调用自己,设置一些终止条件即可。
9.判断101-200之间有多少个素数,并输出所有素数。程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数
注意:通过给for循环取名字,再使用continue或break操作相应的for循环
10、取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
输出格式为:a(2)b(1)k(2)... (2)
希望打印结果:a(1)c(2).....
键值对, 使用map集合;输出有顺序, 使用TreeMap
注意:
1、map int get(key) :若无此键,则返回null
2、map put(key,value): 直接替换原值。
3、map 取出数据两种的方式。
11、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
12、小明的妈妈每天会给他20元零花钱。平日里,小明先花掉一半,再把一半存起来。每到周日,小明拿到钱后会把所有零花钱花掉一半。请编程计算,从周一开始,小明需要多少天才能存够100元?
13、有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?(2)
约瑟夫环,就是循环链表。
参考方法:
1、不停 移除 第一个位置上的数。 加到 最后一位上。
2、如果这个数 为14的数,则 不进行添加。
3、直到链表中 只剩最后一个数 为止。
14、 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)(examTest/Test10)
总共喝到的可乐为 :
* 1、开始买的
* 2、每一轮换的 总和。
* 每一轮
* 2.1 本轮 新换的
* 2.2 本轮 换完 剩下的;
15、在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,如果存在,则返回这个字符在字符数组中第一次出现的位置(序号从0开始计算),否则,返回-1。要搜索的字符数组和字符都以参数形式传递给该方法,如果传入的数组为null,应抛出IllegalArgumentException异常。在类的main方法中以各种可能出现的情况测试验证该方法编写得是否正确,例如,字符不存在,字符存在,传入的数组为null等。
注意: 使用 new IllegalArgumentException().printStackTrace(); 输出异常,但不终止程序。
16、编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:
原始字符串是"abc",打印得到下列所有组合情况:
"a" "b" "c"
"ab" "bc" "ca" "ba" "cb" "ac"
"abc" "acb" "bac" "bca" "cab" "cba"
17、写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。examTest/Test9
18、编写一个程序,他先将键盘上输入的字符串装换成十进制数,然后再转化成二进制数(转换时报的因为大写还是非法字符)
其他编程题
17、 定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。
20、 编写一个可以获取文件扩展名的函数,形参接收一个文件名字符串,返回一个扩展名字符串。
21、 编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
28、 写一个方法,此方法可将obj对象中名为propertyName的属性的值设置为value.
36、 编写HTML注册表单,需要字段: 用户名、密码、确认密码,、性别(单选)、 兴趣爱好(多选)、 城市(下拉列表)、 个人简介(文本域)
使用JavaScript验证这个表单,要求:
1、 用户名:字母数字或下划线10位以内,只能以字母开头
2、密码:6-16位任意字符
3、确认密码:和密码保持一致.
4、其他项为必填
37、 已知一个类,定义如下:
package cn.itcast.heima;
public class DemoClass {
public void run()
{
System.out.println("welcome to heima!");
}
}
(1) 写一个Properties格式的配置文件,配置类的完整名称。
(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。
public void setProperty(Object obj, String propertyName, Object value){
}(2)
作者: adminn 时间: 2016-5-27 00:11
好好。。。。
作者: SkyBlack 时间: 2016-5-27 08:34
谢谢分享,字体有点儿小的说。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |