JAVA基础
1. 字符串比较用.equals()方法,
a) 例如:””.equals(str);
b) 注意:比较时常量要放在前面。
2. Comparable接口
a) 此接口强行对实现它的每个类的对象进行整体排序。
b) 实现此接口的对象列表(和数组)可以通过Collections.sort(和Arrays.sort)进行自动排序
c) 此接口compareTo(T o)方法比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零和正整数。
3. Collections 中方法 reverse(List<?> list) 反转指定列表中元素顺序。
4. BigDecimal类:
a) 看不懂啊,自己看JDK api吧
5. 弄清x++ 与 ++x的区别,这个简单死了,概不论述了。
6. 短路 && || 当前面条件不满足时,不再判断后面的条件,为提升性能,请将最有可能出现不满足的条件放在前面。
7. 尽量使用else if 语句,提升性能。
8. BeanUtil.copyBeans(A,B);(未知)
9. StringBuffer:
a) Append()方法,追加。
b) Insert()插入方法。
10. ArrayList类
a) add(E e)将指定元素添加到此列表的尾部
b) add(int index,E element)将此对象添加到此列表的指定位置。 c) addAll(Collection<? extends E> c)
d) addAll(int index,Collection<? extends E> c)从指定位置开始将制定collection中的所有元素按顺序添加到此列表。
e) clear():移除此列表的所有元素。
f) contains(Object o):如果此列表中包含此对象则返回true。 g) get(int index) 返回此列表指定位置上的元素。
h) isEmpty() 如果此列表中没有元素则返回true。
i) remove(int index) 移除指定位置的对象。
j) remove(Object o)移除指定对象。
k) set(int index,E element)用指定元素代替指定位置上的元素。 l) size() 返回此列表的元素数。
m) toArray() 按照从第一到最后一个的顺序,返回包含此列表中所有元素的数组。
n) toArray(T[] a)返回数组的运行时类型是指定数组的运行时类型。
o) subList(int fromIndex,int toIndex) 返回此列表中从fromIndex到toIndex 中的视图。
p) 动态缩减时使用迭代器 iterator
11. 将数组转化为列表
a) Java.util.Arrays 此类继承自Object asList(T….a) 返回受指定数组支持的固定大小的列表。
b) Java.util.Arrays 中 fill() 方法可以给数组赋值。
c) 注意:该类提供了一系列对数组进行操作的方法。
12. HashMap 性能好,检索速度快。
a) clear() 移除所有映射关系。
b) containsKey(Object key)
c) containsValue(Object value)
d) get(Object key)
e) isEmpty()
f) put(K key,V value)
g) putAll(Map<? Extends K,? extends V> m)
h) remove(Object key)
i) size()
j) values() 返回此映射所包含的值的Collection视图。
13. hashTable
14. LinkedHashMap 具有可预知的迭代顺序。与HashMap的不同之处在于,LinkedHashMap维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该顺序通常是插入顺序。注意:重新插入键时,顺序不改变。
a) clear() 移除该映射中所有映射关系。
b) containsValue(Object value) 如果该映射用有一个或多个键映射到指定value,则返回true。
c) get(Object key) 返回此映射到指定键的值
d) public boolean removeEldestEntry(Map.Entry<K,V> eldest); 如果移除了此映射中最老的映射则返回true.
jQuery
1. each(callback) 遍历 执行回调函数
a) $("img").each(function(i){
}); this.src = "test" + i + ".jpg";
2. $(this) dom对象转换为jQuery对象
3. $(?img?).get() 转换为dom对象
4. 获得元素属性
a) 返回文档中第一个图像属性值 $(?img?).attr(?src?);
b) 为所有匹配元素设置一个属性值 $(?img?).attr(“src”,”text.jpg”);
5. html() 获得第一个匹配元素的html内容
6. text() 获得所有匹配元素的内容 结果是所有匹配元素包含的内容组合起来的文本
7. val() 返回第一个匹配元素的值 在jQuery 1.2中可以返回所有值了。包括select 如果是多选就返回一个数组。
8. css()
a) $(?p?).css(“color”,”red”);
9. bind(type,[data] ,fn)
a) type:事件类型
b) fn:绑定到每个匹配元素上的时间处理函数
10. trigger(type, [data])
a) type: 要触发的事件类型
b) 传递给事件处理参数的附加参数
11. hover(over,out)
a) over:鼠标移到匹配元素上要触发的函数
b) out: 鼠标移出匹配元素上要触发的函数
12. show() 显示隐藏的匹配元素,如果选择的元素是可见的这个方法将不会改变任何东西。无论这个元素是通过hide()方法隐藏还是在css里设置了display:hidden;这个方法都将有效。
13. hide() 隐藏显示的匹配元素,如果选择的元素是隐藏的这个方法将不会改变任何东西。
14. 选择器
a) element 选择器 $(?div?)
b) id 选择器 $(?#id?)
c) class 选择器 $(“.myClass”)
d) * 全选 $(“*”)
e) 层级选择器
i. ancestor descendant 例如:$(“form input“) 匹配form祖先元素
下所有的后代元素
ii. parent>child 匹配父元素下所有的直接子元素
iii. prev+next 匹配所有紧接在prev元素后的next元素 iv. prev ~ siblings 匹配所有与prev同辈的元素
f) 基本
i. :first 所有匹配元素的第一个元素
ii. :last 所有匹配元素的最后一个
iii. :even 匹配所有索引值为偶数的元素,从0开始计数 iv. :odd 匹配所有索引值为奇数的元素,从0开始
15. 内部插入
a) append(content) 向每个匹配的元素内部添加内容 和 appendChild方法类似
b) appendTo()把所有匹配元素追加到指定元素中
16. find() 查找匹配元素 (慎用,会影响性能)。
第二篇:java基础总结
五个常见难答面试题目解析
经常参加面试的人会发现,许多企业的面试题目都似曾相识。哪些是企业面试常见的题目,题目背后的考察点是什么?弄清这些问题,面试将无往而不胜。
由于面试没有结果以及面试中的各种不确定因素,许多人害怕面试。我也曾看到一些人充满了对未来工作的雄心大志,却因为笨拙的回答被拒之门外。这里为大家准备了一些常见的面试考题以及一些答题思路。这些答案不一定是最优的,也不是唯一的。只是在此提供一些答题的思路,供大家参考。
题目1:你为什么选择本公司?
解析:所有应征者都可能遇到这样的问题,切记要给以积极、正面的回答,除说明公司的优势及自己在公司的发展空间等原因,还可进一步说明自己的哪些专长可以胜任招聘职位。
题目2:你认为公司所处的行业前景如何?
解析:此题主要是了解求职者对行业及产业现况的理解及展望,因此,建议在面试前除了做一些功课,查阅一些行业资料,最好加上自己的理解。
题目3:你是否愿意从基层做起?
解析:主要考察应聘者是否是一个踏实肯干而非眼高手低的人。职场新人可以表示自己愿意从基层开始锻炼自己。
题目4:对未来有何打算?
解析:要强调自己如有机会加入,一定努力为企业工作。在此基础上,自己同企业一同发展,自己的职业生涯目标与企业目标息息相关。
题目5:你的优势和劣势?
解析:此题是为了测试应聘者对自己的客观认识。可以准备几个事例加以证明,或加上其他人的观点,应避免抽象的陈述,而以具体的体验及自我反省为主,使内容更具有吸引力。
这种问题是在面试时经常会出现的,在回答这种问题时,除了像经验、年龄、学历、性别、外
语、专业等一目了然的外在情况外,可以将自己的优势稍加转化。如销售职位的应聘者可以这样说:
我的优势在于我的沟通能力,我能很快与客户建立一种良好的关系。
常用正则表达式汇总
发布人:guoguo 发布时间:20xx-12-18 阅读:58次
"^\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\d+$" //整数
"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\d+)(\.\d+)?$" //浮点数
"^[A-Za-z]+$" //由26个英文字母组成的字符串
"^[A-Z]+$" //由26个英文字母的大写组成的字符串
"^[a-z]+$" //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串
"^\w+$" //由数字、26个英文字母或者下划线组成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url
^(\\d{2}|\\d{4})-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2][0-9]|3[0-1])$ //年-月-日
^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$ //月/日/年
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil
/^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/ //电话号码
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$
元字符及其在正则表达式上下文中的行为:
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之 后的位置。
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之 前的位置。
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。
{n} n 是一个非负整数,匹配确定的n 次。
{n,} n 是一个非负整数,至少匹配n 次。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有 空格。
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。
非贪婪模式
尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。 (pattern) 匹配pattern 并获取这一匹配。
(?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
(?!pattern) 负向预查,与(?=pattern)作用相反
x|y 匹配 x 或 y。
[xyz] 字符集合。
[^xyz] 负值字符集合。
[a-z] 字符范围,匹配指定范围内的任意字符。
[^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。
\b 匹配一个单词边界,也就是指单词和空格间的位置。
\B 匹配非单词边界。
\cx 匹配由x指明的控制字符。
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
\W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。
\xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。
\num 匹配 num,其中num是一个正整数。对所获取的匹配的引用。
\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达
式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
\nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。 \un 匹配 n,其中 n 是一个用四个十六进制数字表示的Unicode字符。
匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"
用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"
用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^d]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"
用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[W]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"
--JS案例----------------------------------------------------------
//判断文本框是否全是空格
var title=form1.all.info.value;
var s = title.replace(/[ ]/g, "");
if( s==""){
alert("内容为空,不能发送!");
form1.all.info.focus();
return false;
}
-------------------------------------------------------------------
//匹配用户名:只能有字母、数字、下划线,6----10位
function checkUsername(a){
// 传统方式
// var p="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_";
// for(i=0;i<p.length;i++)<VALUE.LENGTH;I++){< FONT>
// if( p.indexOf(a.charAt(i)) ==-1 )
// return false;
// }
//使用正则
var p=/^[\w]{6,10}$/;
return p.test( a) ;
}
-------------------------------------------------------------------
整理:
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
sql语句:^(select|drop|delete|create|update|insert).*$
1、非负整数:^\d+$
2、正整数:^[0-9]*[1-9][0-9]*$
3、非正整数:^((-\d+)|(0+))$
4、负整数:^-[0-9]*[1-9][0-9]*$
5、整数:^-?\d+$
6、非负浮点数:^\d+(\.\d+)?$
7、正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
8、非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$
9、负浮点数:^(-((正浮点数正则式)))$
10、英文字符串:^[A-Za-z]+$
11、英文大写串:^[A-Z]+$
12、英文小写串:^[a-z]+$
13、英文字符数字串:^[A-Za-z0-9]+$
14、英数字加下划线串:^\w+$
15、E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
16、URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$
或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$
17、邮政编码:^[1-9]\d{5}$
18、中文:^[\u0391-\uFFE5]+$
19、电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$
20、手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$
21、双字节字符(包括汉字在内):^\x00-\xff
22、匹配首尾空格:(^\s*)|(\s*$)(像vbscript那样的trim函数)
23、匹配HTML标记:<(.*)>.*<\/\1>|<(.*) \/>
24、匹配空行:\n[\s| ]*\r
25、提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
26、提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
27、提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
28、提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
29、提取信息中的中国手机号码:(86)*0*13\d{9}
30、提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
31、提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
32、提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
33、提取信息中的浮点数(即小数):(-?\d*)\.?\d+
34、提取信息中的任何数字 :(-?\d*)(\.\d+)?
35、IP:(\d+)\.(\d+)\.(\d+)\.(\d+)
36、电话区号:/^0\d{2,3}$/
37、腾讯QQ号:^[1-9]*[1-9][0-9]*$
38、帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
39、中文、英文、数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$
40、 15/18位身份证: /^(([0-9]{15})|([0-9]{17}[A-Z0-9]{1}))$/
-------------------------------------------------------------------
Java 案例:
/**
* 检查 固定电话号码 (2/3位区号 + 7/8位号码)
* @param tel
* @return
*/
public static boolean checkTelString(String tel){
return tel .matches("^(\\d{3}-|\\d{4}-)?(\\d{8}|\\d{7})$");
}
/**
* 格式化Double值
* 格式:#######.00 保留两位小数
* @param b
* @return String 表示形式
*/
public static String getDoubleFormatString(Double b){
//货币格式 :#.00
DecimalFormat f =new DecimalFormat("#.00");
return f. format(b);
}
-------------------------------------------------------------------