JavaEE通常是指Java Enterprise Edition,Java企业版
JavaSE通常是指Java Standard Edition,Java标准版
Java ME通常是指Java Micro Edition,Java微型版本
JavaEE 比 SE多了许多包,用于开发大规模的,分布式的Java应用/服务器。
比如JSP,Servlet相关的包都是在JavaEE范畴,SE里面没有的。
JRE顾名思义是java运行时环境
JDK顾名思义是java开发工具包
如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。
java -jar demo.jar
java -Xms515m -Xmx1024m -jar demo.jar
命名应该非简称,助记的话:memory startup初始内存,memory maximum最大内存
类型名称 | 字节空间 | 使用场景 |
---|---|---|
byte | 1个字节 | 存储字节数据 |
short | 2个字节 | 兼容性考虑 |
int | 4个字节 | 存储普通整数 |
long | 8个字节 | 存储长整数 |
float | 4个字节 | 存储浮点数 |
double | 8个字节 | 存储双精度浮点数 |
char | 2个字节 | 存储一个字节 |
boolean | 1个字节 | 存储逻辑变量 |
(1)继承:继承是从已有类得到继承信息创建新类的过程
(2)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。
(3)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。
你是怎样理解多态的?什么地方用过?
同一个行为具有多个不同表现形式或形态的能力。
父类引用指向子类对象,例如 List< String > list = new ArrayList< String >();就是典型的一种多态的体现形式。
1、重载发生在本类,重写发生在父类与子类之间;
2、重载的方法名必须相同,重写的方法名相同且返回值类型必须相同;
3、重载的参数列表不同,重写的参数列表必须相同。
4、重写的访问权限不能比父类中被重写的方法的访问权限更低。
5、构造方法不能被重写
在子类中可以根据需要对从基类中继承来的方法进行重写,重写是对类中方法的扩充,因为继承用的是父类的东西,重写则不仅得到父类的东西,同时也加入了自己的东西
4种
for
forEach
iterator
stream
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
//for
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i)+" ");
}
//加强for
for (Integer i : list) {
System.out.print(i+" ");
}
//iterator
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()){
Integer i = iterator.next();
System.out.print(i+" ");
}
//stream
list.stream().forEach(System.out::println);
是什么
对数据源的计算
特点
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的这种没有终结操作就不会执行的特性被称为延迟执行。
(1)lambda能替换匿名内部类
Runnable r = new Runnable() {
@Override
public 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());
Getter,Setter,toString,equals,hasCode
快捷键alt+ins或者lombok的@data
@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);
}
}
mvn -v, --version 显示版本信息
打包:mvn package
在本地 Repository 中安装 jar:mvn install
清除产生的项目:mvn clean
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} 。
git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
git commit -m ‘注释’ 将缓存区内容添加到本地仓库
git push origin master 将本地版本库推送到远程服务器
ls:查看 linux 文件夹包含的文件,而且可以查看文件权限
pwd:命令用于查看当前工作目录路径。
cd:切换当前目录至 dirName。
rm:删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
mv:移动文件或者改名
cp:将源文件复制至目标文件
cat:查看文件的内容
tail:命令用于显示指定文件末尾内容
free:查看内存
查找指定进程
ps -ef | grep svn