深圳网站建设ejaket免费网页制作网站
目录
- 1.Java ME、EE、SE的区别,Java EE相对于SE多了哪些东西?
 - 2.jdk与jre的区别
 - 3.说一下java的一些命令,怎么运行一个jar包
 - 4.简单说一下java数据类型及使用场景
 - 5.Map跟Collection有几种实现?
 - 6.面向对象的特性
 - 7.重载和重写的区别
 - 8.重写的好处,怎么重写父类的方法
 - 9.java中遍历list的几种方式
 - 10.stream流用过吗?它能够实现什么?
 - 11.讲讲对lambda表达式的理解
 - 12.我们在创建一个实体类的时候,必要的有哪些方法?
 - 13.这些方法你都是手写的,还是用什么工具生成的,还是说用注解?
 - 14.lombok注解用过吗?
 - 15.maven的常用命令
 - 16.maven的pom文件有哪些标签及标签的作用
 - 17.git命令,它的提交过程
 - 19.Linux常用命令
 
1.Java ME、EE、SE的区别,Java EE相对于SE多了哪些东西?
JavaEE通常是指Java Enterprise Edition,Java企业版
 JavaSE通常是指Java Standard Edition,Java标准版
 Java ME通常是指Java Micro Edition,Java微型版本
JavaEE 比 SE多了许多包,用于开发大规模的,分布式的Java应用/服务器。
比如JSP,Servlet相关的包都是在JavaEE范畴,SE里面没有的。
2.jdk与jre的区别
JRE顾名思义是java运行时环境
 JDK顾名思义是java开发工具包
 如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。
3.说一下java的一些命令,怎么运行一个jar包
java -jar demo.jar
 java -Xms515m -Xmx1024m -jar demo.jar
 命名应该非简称,助记的话:memory startup初始内存,memory maximum最大内存
4.简单说一下java数据类型及使用场景
| 类型名称 | 字节空间 | 使用场景 | 
|---|---|---|
| byte | 1个字节 | 存储字节数据 | 
| short | 2个字节 | 兼容性考虑 | 
| int | 4个字节 | 存储普通整数 | 
| long | 8个字节 | 存储长整数 | 
| float | 4个字节 | 存储浮点数 | 
| double | 8个字节 | 存储双精度浮点数 | 
| char | 2个字节 | 存储一个字节 | 
| boolean | 1个字节 | 存储逻辑变量 | 
5.Map跟Collection有几种实现?

6.面向对象的特性
(1)继承:继承是从已有类得到继承信息创建新类的过程
 (2)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。
 (3)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。
你是怎样理解多态的?什么地方用过?
 同一个行为具有多个不同表现形式或形态的能力。
 父类引用指向子类对象,例如 List< String > list = new ArrayList< String >();就是典型的一种多态的体现形式。
7.重载和重写的区别
1、重载发生在本类,重写发生在父类与子类之间;
 2、重载的方法名必须相同,重写的方法名相同且返回值类型必须相同;
 3、重载的参数列表不同,重写的参数列表必须相同。
 4、重写的访问权限不能比父类中被重写的方法的访问权限更低。
 5、构造方法不能被重写
8.重写的好处,怎么重写父类的方法
在子类中可以根据需要对从基类中继承来的方法进行重写,重写是对类中方法的扩充,因为继承用的是父类的东西,重写则不仅得到父类的东西,同时也加入了自己的东西
9.java中遍历list的几种方式
4种
for
forEach
iterator
stream
 
        ArrayList<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);//forfor (int i = 0; i < list.size(); i++) {System.out.print(list.get(i)+" ");}//加强forfor (Integer i : list) {System.out.print(i+" ");}//iteratorIterator<Integer> iterator = list.iterator();while (iterator.hasNext()){Integer i = iterator.next();System.out.print(i+" ");}//streamlist.stream().forEach(System.out::println);
 
10.stream流用过吗?它能够实现什么?
是什么
 对数据源的计算
 特点
 1.Stream 自己不会存储元素
 2.Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream。
 3.Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。
 Stream只在遇到终结操作的时候才会执行,比如:
        List.of(1, 2, 3).stream().filter(i -> i > 2).peek(System.out::println);
 
这么一段代码是不会执行的,peek方法可以看作是forEach,这里我用它来打印Stream中的元素。
 因为filter方法和peek方法都是转换流方法,所以不会触发执行。
 如果我们在后面加入一个count方法就能正常执行:
        List.of(1, 2, 3).stream().filter(i -> i > 2).peek(System.out::println).count();
 
count方法是一个终结操作,用于计算出Stream中有多少个元素,它的返回值是一个long型。
 Stream的这种没有终结操作就不会执行的特性被称为延迟执行。
11.讲讲对lambda表达式的理解
(1)lambda能替换匿名内部类
        Runnable r = new Runnable() {@Overridepublic void run() {System.out.println("thread run");}}Runnable r = () -> {System.out.println("thread run");};
 
(2)哪里有list,哪里就有lambda
        //遍历输出集合List<Integer> list=Arrays.asList(1,2,3,4,5);list.forEach(x->System.out.print(x));//当然也可使用方法引用list.forEach(System.out::print);//取出所有大于1的元素,并形成新的集合List<Integer> collect = list.stream().filter(x -> x > 1).collect(Collectors.toList());//获取学生的所有年龄集合List<Integer> ageList=Arrays.asList(new Student("tom",20),new Student("jack",22)).stream().map(Student::getAge).collect(Collectors.toList());
 

12.我们在创建一个实体类的时候,必要的有哪些方法?
Getter,Setter,toString,equals,hasCode
13.这些方法你都是手写的,还是用什么工具生成的,还是说用注解?
快捷键alt+ins或者lombok的@data
14.lombok注解用过吗?
- @Data
使用这个注解,就不用再去手写Getter,Setter,equals,canEqual,hasCode,toString等方法了,注解后在编译时会自动加进去。 - @AllArgsConstructor
使用后添加一个构造函数,该构造函数含有所有已声明字段属性参数 - @NoArgsConstructor
使用后创建一个无参构造函数 - @Builder注解使用的创建者模式又叫建造者模式。简单来说,按照自定义属性去创建对象,比如一个类可能有很多属性 但是我创建对象想按照自己的属性去设置 就要创建很多构造方法 用了这个注解就不用了
 
@ToString
@Builder
public class User {private Integer id;private String name;private String address;
}class Test{public static void main(String[] args) {User user = User.builder().address("beijing").build();System.out.println(user);}
}
 
15.maven的常用命令
mvn -v, --version 显示版本信息
 打包:mvn package
 在本地 Repository 中安装 jar:mvn install
 清除产生的项目:mvn clean
16.maven的pom文件有哪些标签及标签的作用
project - project 是 pom.xml 中描述符的根。
 modelVersion - modelVersion 指定 pom.xml 符合哪个版本的描述符。maven 2 和 3 只能为 4.0.0。
 groupId - 团体、组织的标识符。
 artifactId - 单独项目的唯一标识符。
 version - 一个项目的特定版本。
 dependencyManagement 是表示依赖 jar 包的声明。即你在项目中的 dependencyManagement 下声明了依赖,maven 不会加载该依赖,dependencyManagement 声明可以被子 POM 继承。主要是为了统一管理依赖包的版本,确保所有子项目使用的版本一致
 modules - 子模块列表。
 properties- 属性列表。定义的属性可以在 pom.xml 文件中任意处使用。使用方式为 ${propertie} 。
17.git命令,它的提交过程
git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
 git commit -m ‘注释’ 将缓存区内容添加到本地仓库
 git push origin master 将本地版本库推送到远程服务器
19.Linux常用命令
ls:查看 linux 文件夹包含的文件,而且可以查看文件权限
 pwd:命令用于查看当前工作目录路径。
 cd:切换当前目录至 dirName。
 rm:删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
 mv:移动文件或者改名
 cp:将源文件复制至目标文件
 cat:查看文件的内容
 tail:命令用于显示指定文件末尾内容
 free:查看内存
 查找指定进程
ps -ef | grep svn
