Java面试的一些面试题

10<<2=?

tip:10的二进制为1010,左移两位即:101000,换算为十进制为2的5次方加上2的三次方等于40

答:40


1.dr-xr-xr-r解释一下权限的含义

tip:

参考:Liunx学习总结(四)--文件的权限管理 - MarkLogZhu - 博客园

答:dr-xr-xr-x. 表示这是一个目录文件,它的所有者可以对它读和执行,不能写 、所属组可以对它读和执行,不可以写,其他人可以读和执行,不能写,并且是 ACL 类型。 2.linux下移动文件命令 将/var/other/read.txt文件移动到/var/look/下

tip:

格式:

mv [选项(option)] 源文件或目录 目标文件或目录

使用命令:

mv webdata /bin/usr/

可以延伸一下:

mv /usr/lib/* /zone

是将 /usr/lib/下所有的东西移到/zone/中。

mv /usr/lib/*.txt /zone

是将lib下以txt结尾的所有文件移到/zone中。 其他类型,以此类推。

答:mv /var/other/read.txt /var/look

3.JavaScript下试用正则表达式筛选出“bannana”中的“na”

答:

4.深度为5的二叉树最多有多少个节点

tip:2的n次方减一

答:2^5 - 1 = 31个结点

5.写出你熟悉的数据库名称

答:Mysql,SQL

6.如何对数据库进行优化?

tip:参考:

如何进行数据库的优化? - 君凌 - 博客园

如何对数据库进行优化 - 贝贝拉 - 博客园

答:

1、优化索引、sql语句、分析慢查询 
2、设计表的时候严格根据数据的设计规范来设计数据库 
3、使用缓存,吧经常访问到的数据而且不需要变化的数据放到缓存中 
4、使用固态硬盘 
5、采用MYSQL内部自带的表分区技术,吧数据分层到不同的文件中,能够提高餐盘的读写效率 
6、垂直分表,吧一些不经常用到的数据放到一个表中,节约磁盘的I/O 
7、主从分离读写,采取主从复制把数据库的读操作和写操作分离出来 
8、数据库分表分机器(数据特变大的),主要的原理就是数据路由 
9、选择合适的表引擎,对参数地上的优化 
10、进行加购级别的缓存,静态化和分布式。 
11、不采用全文索引吗,用什么搜什么 
12、采用更快的处分方式,例如NoSql储存经常访问的数据

7.如何进行数据库的维护,平时需要做些什么?

tip:参考:

数据库维护_FairMoreFair的博客-CSDN博客

数据库的维护工作主要包括哪些方面_半城烟雨半城花的博客-CSDN博客

答:

1.监视数据库的运行
2.数据一致性检查
3.磁盘空间检查
4.最主要的就是备份和恢复

8.求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)

9.求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

参考_zyp7355的博客-CSDN博客

答:

public class Solution {
    public int Sum_Solution(int n) {
        int sum = n;
       boolean t = (n>0)&& (sum += Sum_Solution(n-1))>0;
        return sum;
          
    }
}

10.给出一组整数数组,要求按照绝对值从小到大进行排序后输出。

tip:参考:

整数数组按绝对值排序 - applepaihs的个人空间 - OSCHINA - 中文开源技术交流社区

整数数组按绝对值排序丶Java教程网-IT开发者们的技术天堂

答:

public void testSort() {
                int[] arr = {17, -27, 3, 21, -5, 2, 18, -40};
                
                for(int i=0; i<arr.length-1; i++) {
                        //外层循环每执行一遍,末尾位置就确定一个元素。 比如:第一次循环完,确定 index=arr.length-1的元素;
                        //第二次循环,确定 index=arr.length-2的元素
                        for(int j=0; j<arr.length-1-i; j++) {
                                if(Math.abs(arr[j]) > Math.abs(arr[j+1])) {
                                        int tmp = arr[j+1];//交换相邻两个元素
                                        arr[j+1] = arr[j];
                                        arr[j] = tmp;
                                }
                        }
                }
                for(int one:arr) {
                        System.out.print(one);
                        System.out.print(",");
                }
        }

11.在一个漆黑的夜晚,有4个女人要在17分钟内通过一座桥,她们只有一个手电筒,手电筒需要传来传去.

她们过桥的速度分别是:

第一个女人1分钟

第二个女人2分钟

第三个女人5分钟

第四个女人10分钟

她们一次最多可以通过两个,而且通过的速度由较低的那个女人的速度来决定,例如第一个女人和第四个女人一起过桥,那么需要10分钟,然后第四个女人再把手电筒传回去需要10分钟,这就是20分钟超过了17分钟,问她们到底怎么样可以在规定的时间内通过这座桥?

答:

1分钟和2分钟过去 用2分钟 ,
1分钟回来 用1分钟 ,
5分钟10分钟过去 用10分钟 ,
2分钟回来 用2分钟 ,
1分钟2分钟过去 用2分钟 ,
17分钟。

12.linux中重命名文件的命令

13.一片草地,10只羊吃22天,16只羊吃10天,7只羊可以吃多少天?

14.甲从a逆时针出发,乙从b顺时针出发,ab为直径,第一次相遇在c点,第二次相遇在d点,ac圆弧长为60,bc为100问圆的周长为多少?

15.编程填空:两个ab常量互换,不允许增加新的变量

16.编程填空:补齐九九乘法表

17.程序执行顺序:线程题,答案中有1212 1221 .....

18.tcp/ip udp/ip 在那一层?网络层,运输层...

19.子网划分

20.分页查询

21.删除表中重复的数据

22.@postconstruct与构造函数的加载问题,先加载后加载...

23.java1.8新特性

24.你日常用那些工具

25.你日常用到哪些组件

26.你在大学中学习的计算机课程有哪些?