■redis中的zset数据类型,是怎么排序的?
是根据score进行排序的,默认是从小到大排序。
1、java中&和&&的区别?
* 在java的逻辑运算符中,有这么四类:&&(短路与),&,|,||(短路或)。
* &&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断。而&要对所有的条件都进行判断;
* 除此之外,&&只是逻辑运算符,而&除了是逻辑运算符之外,也是位运算符。
* ||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
2、List<String> 可以转换为List<Object>吗?可以说明,不可以也说明
* 不可以
* 虽然String是Object的子类,但是List<String> 与 List<Object> 并不是父子关系,所以不可以转换
* (2).List<T>属于泛型。
Java的泛型实现是基于类型擦除的。换句话说,List<String>与List<Object>由于类型擦除, 在编译后会映射到相同的List类型上,
也就是运行时实际无法区分二者,不过在取用时,编译器会进行类型还原,从而变为原来的List<String>与List<Object>。
也就是两者本质上是相同的东西,直接混用会影响类型还原的区分,因此二者不能直接转换。(List<?>)实际是将类型模糊化,然后再具体化的过程。
3、git 的 fetch(下载) 和 git 的 merge(合并)?
①、git其实有好几个区,工作区(workspace)、暂存区(index)、本地仓库(local repository),当然还有远程仓库(remote repository)。
②、远程仓库为我们保存一份代码拷贝,如github,而工作区、暂存区和本地仓库都在本地,这就是为什么没有网络我们也照样使用git提交(commit)
代码更新,因为提交仅是提交到本地仓库, 待有网络之后可以再推送(push)到远程仓库。
* git fetch是将远程仓库的更新获取到本地仓库,不影响其他区域。而git pull则是一次性将远程仓库的代码更新到工作区(同时也会更新本地仓库)
简单的说git pull相当于git fetch后再做一个git merge
③、fetch同pull的区别在于:git fetch:是从远程获取最新版本到本地,不会自动merge ,而git pull是从远程获取最新版本并merge到本地仓库,
从安全角度出发,git fetch比git pull更安全,因为我们可以先比较本地与远程的区别后,选择性的合并。
git push 默认推送到master,如果有多个分支,则多个分支一起推送到远程
4、session和cookie的区别?(衍生的问题是面试官会接着问如何理解跨域)
5、request.getAttribute() 和 request.getParameter() 有何区别?
①、首先request对象代表客户端的一次请求,可以用它来存储客户端请求的一些参数。
②、request.getParameter()方法可以获取请求参数,是客户端请求时,客户端发送给服务器的参数,这个赋值动作是有客户端完成的。它的返回值类型是字符串类型
③、request.getAttribute()方法用于获取request对象中的attribute值,这个值是之前在服务器端通过setAttribute(key ,value)放入到request对象中的,返回任意对象
6、restful 风格中put、post、delete、get分别指的是什么?
7、递归代码,一段字符串"1235324564"(类似的数字)用递归的方式输出里面"4"的个数
public static void main(String[] args) {
total();
}
public static void total() {
String num = "12353245644543522434232";
//思想来自String的底层用char数组保存,所以,无需使用String数组
char chars[] = num.toCharArray();
System.out.println(calc(chars, 0, chars.length, 0));
}
private static int calc(char[] chars, int start, int end, int sum) {
if (end == start) {
return sum;
}
char c = '4';
if (c == chars[start]) {
sum++;
}
return calc(chars, ++start, end, sum);
}
8、long和Long哪个线程安全的
long和double是一个基本类型,只有被用在多线程数据共享时才会出现线程安全的问题。如果不共享,就不会线程不安全。
其次,基本类型本身就是内存值的直接拷贝,多线程共享情况下,如果没有保护机制,数据的读写是不可控的,线程读写时的实际值和预想值存在差异。所以是不安全的。
网友评论