java真实面试_深圳百纳九州_java的基本数据类型有几种,并且写出全部的数据类型写出常用的Linux命令finalfinalize和finnally的不同之处用java手写一个单例类

Posted 平凡加班狗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java真实面试_深圳百纳九州_java的基本数据类型有几种,并且写出全部的数据类型写出常用的Linux命令finalfinalize和finnally的不同之处用java手写一个单例类相关的知识,希望对你有一定的参考价值。

系列文章目录

一、java的基本数据类型有几种,并且写出全部的数据类型

八种基本数据类型
int、
long、
double、
byte、
char、
float、
short、
boolean

八种基本数据类型分别是:
14种整数类型(byteshortintlong);
22种浮点类型(floatdouble);
31种字符类型“char”;
41种布尔类型“boolean”

二、写出常用的Linux命令

我自己写的
cp 复制
ls -a 查看所有文件
cd ~ 回到当前用户目录
pwd 显示当前所在目录
vim 编辑文档
:q!强制退出
:wq! 保存之后强制退出
ping - c4 www.baidu.com 拼一个网址(这里以百度为例)拼4次
其它的对着文档看,默写出来需要经过大量的自己写和练习

参考答案:

1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件。

find . -name "*.xml" 递归查找所有的xml文件

find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello world的xml文件

grep -H 'spring' *.xml 查找所以有的包含spring的xml文件

find ./ -size 0 | xargs rm -f & 删除文件大小为零的文件

ls -l | grep '.jar' 查找当前目录中的所有jar文件

grep 'test' d* 显示所有以d开头的文件中包含test的行。

grep 'test' aa bb cc 显示在aa,bb,cc文件中匹配test的行。

grep '[a-z]\\{5\\}' aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

2.查看一个程序是否运行 ps –ef|grep tomcat 查看所有有关tomcat的进程

3.终止线程 kill -9 19979 终止线程号位19979的进程

4.查看文件,包含隐藏文件 ls -al

5.当前工作目录 pwd

6.复制文件 cp source dest 复制文件 cp -r sourceFolder targetFolder 递归复制整个文件夹 scp sourecFile romoteUserName@remoteIp:remoteAddr 远程拷贝

7.创建目录 mkdir newfolder

8.删除目录 rmdir deleteEmptyFolder删除空目录 rm -rf deleteFile 递归删除目录中所有内容

9.移动文件 mv /temp/movefile /targetFolder

10.重命令 mv oldNameFile newNameFile

11.切换用户 su -username

12.修改文件权限 chmod 777 file.java //file.java的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行

13.压缩文件 tar -czf test.tar.gz /test1 /test2

14.列出压缩文件列表 tar -tzf test.tar.gz

15.解压文件 tar -xvzf test.tar.gz

16.查看文件头10行 head -n 10 example.txt

17.查看文件尾10行 tail -n 10 example.txt

18.查看日志类型文件 tail -f exmaple.log//这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。

19.使用超级管理员身份执行命令 sudo rm a.txt 使用管理员身份删除文件

20.查看端口占用情况 netstat -tln | grep 8080 查看端口8080的使用情况

21.查看端口属于哪个程序 lsof -i :8080

22.查看进程 ps aux|grep java 查看java进程 ps aux查看所有进程

23.以树状图列出目录的内容 tree a ps:Mac下使用tree命令

24.文件下载 wget http://file.tgz mac下安装wget命令 curl http://file.tgz

25.网络检测 ping www.just-ping.com

26.远程登录 ssh userName@ip

27.打印信息 echo $JAVA_HOME 打印java home环境变量的值

28.java 常用命令 java javac jps ,jstat ,jmap, jstack

29.其他命令 svn git maven

三、final、finalize和finnally的不同之处

参考答案:

final 是一个修饰符,可以修饰变量、方法和类。如果 final 修饰变量,意味着该 
变量的值在初始化后不能被改变。

finally是一个关键字,与 trycatch 一起用于异常的处理。finally 块一定会被执行,
无论在 try 块中是否有发生异常
finalize 
这个方法是JVM自己调用的,我们编程用不到。他几是个垃圾回收器。等一段时间JVM自动回收垃圾数据

四、 创建线程有哪几种方式?

创建线程有三种方式:

继承 Thread 重写 run 方法;
实现 Runnable 接口;
实现 Callable 接口。

五、权限怎么设计,几个表可以完成

我的答案
五张表
用户表 角色表、用户和角色关系表、菜单表、角色和菜单关系表
对这五张表进行CURD(增删改查)即可实现权限管理

参考答案:

六、[1,a,3,5,b,9,c] 和 [2,4,5,6,c,8,9]代码实现最快找出相同数

【这个暂时没有找到答案】

七、spring有哪两大机制,两大机制的原理是什么,并且列举出这两大机制的应用场景

IoC(控制反转)/ DI(依赖注入)
AOP(面向切面编程)
Spring 是一个企业级开发框架,是软件设计层面的框架,优势在于可以将应用程序进行分层,开发者可以自主选择组件。

MVC:Struts2、Spring MVC
ORMapping:Hibernate、MyBatis、Spring Data
AOP的作用
作用:在不修改源代码的情况下,可以实现功能的增强
横向抽取机制(AOP思想):
AOP 思想: 基于代理思想,对原来目标对象,创建代理对象,在不修改原对象代码情况下,通过代理对象,调用增强功能的代码,从而对原有业务方法进行增强
AOP应用场景
场景一: 记录日志
场景二: 监控方法运行时间 (监控性能)
场景三: 权限控制
场景四: 缓存优化 (第一次调用查询数据库,将查询结果放入内存对象, 第二次调用, 直接从内存对象返回,不需要查询数据库 )
场景五: 事务管理 (调用方法前开启事务, 调用方法后提交关闭事务 )

参考文档:链接

八、数据库的四大特征是什么

原子性、一致性、持久性、隔离性

九、sql的优化方式有哪些

其实我自己写过一篇文章,但是记不全了,真尴尬
参考自己的链接:我的博客

十、用java手写一个单例类

自己写:

参考答案一

参考答案2:
面试官:请手写下几种常见的单例模式
我:好的(面带微笑)
为什么要有单例模式?
实际编程应用场景中,有一些对象其实我们只需要一个,比如线程池对象、缓存、系统全局配置对象等。这样可以就保证一个在全局使用的类不被频繁地创建与销毁,节省系统资源

实现单例模式的几个要点
1、首先要确保全局只有一个类的实例,要保证这一点,至少类的构造器要私有化。
2、单例的类只能自己创建自己的实例,因为,构造器私有了,但是还要有一个实例,只能自己创建咯!
3、单例类必须能够提供自己的唯一实例给其他类,就是要有一个公共的方法能返回该单例类的唯一实例
单例模式的6种实现
1、饿汉式—静态常量方式(线程安全)

public class Singleton {  
    private static Singleton instance = new Singleton();  
    private Singleton (){}  
    public static Singleton getInstance() {  
    return instance;  
    }  
}

类加载时就初始化实例,避免了多线程同步问题。天然线程安全

2、饿汉式—静态代码块方式(线程安全)

public class Singleton {
    private static Singleton instance;
    static {
        instance = new Singleton();
    }
    private Singleton() {}
    public static Singleton getInstance() {
        return instance;
    }
}

3、懒汉式(线程不安全)

public class Singleton {
    private static Singleton singleton;
    private Singleton() {}
    public static Singleton getInstance() {
        if (singleton == null) {
            singleton = new Singleton();
        }
        return singleton;
    }
}

这是最基本的实现方式,第一次调用才初始化,实现了懒加载的特性。多线程场景下禁止使用,因为可能会产生多个对象,不再是单例

以上是关于java真实面试_深圳百纳九州_java的基本数据类型有几种,并且写出全部的数据类型写出常用的Linux命令finalfinalize和finnally的不同之处用java手写一个单例类的主要内容,如果未能解决你的问题,请参考以下文章

java真实面试 _ java里面如何去重_数组去重_HashSet_HashMap_List

java真实面试_翰竺科技有限公司_牛客网上的选择题sql面试题_查询各科总分最高的前5个学生_查询各科考试的平均分

Java后端真实面试题大全(有详细答案)--高频/真题

Java_面试札记

2020最新Java面试题集合,朋友圈疯传,知乎过万点赞

大厂Mysql高频面试题!深圳程序员工作5年月薪