实训日志

@[TOC]我的实训日志

我的实训日志第一天0715

今天是第一天,实训开始,没有早自习和晚自习,老师讲课时间相对较少,下午办事还花掉一部分时间,总结一下我的收获

上午时间和下午时间

上午介绍了IDE的选择,老师推荐idea和eclipse,因为这个比较贴近企业。
我选择的是idea,但是老师上课先使用的是eclipse,虽然IDE不同,但是我觉得这些应该都是相通的。
主要内容:

  1. java的数据类型有哪些?(基本数据类型和引用数据类型)
    基本数据类型:四个数字:byte、short、int、long
    两个浮点数:float、double
    char和boolean
    引用数据类型:类、数组、接口
  2. java的内存模型,有堆区,栈区,工作区
    在jdk1.8之后,有个字符串常量池从工作区转移到堆区。
    堆区存放的是使用new创建的变量,栈区存放的是栈帧,每个函数执行就会创建一个栈帧,栈帧有存放临时变量的位置,在函数里声明的变量,例如int a = 1; 在函数执行的时候就会创建一个栈帧,里面就会有a=1这个变量。在函数执行完毕的时候,函数就会出栈,连同临时变量都要一同销毁。
  3. String StringBuffer StringBuilder
    String是一个final修饰的类,不可以被继承,底层是一个不可变的char数组。说不可以变的意思不是string a=“a”;之后a=“b”;不可以执行,而是在a=“a”时,在常量池里创建了一个“a”对象,而当执行到a="b"时,jvm是在常量池里创建一个新常量“b”,使a变量指向“b”,原来的常量“a”并没有消失,还是存在的,这个就是不可变的意思。这个也是string和stringbuffer与stringbuilder的差别。
    StringBuilder和StringBuffer的差别主要是在StringBuilder是非线程安全的,StringBuffer是线程安全的。在工作中一般是使用StringBuilder。
  4. ArrayList和LinkedList
    ArrayList插入效率和linkedlist的插入效率相比,如果在尾部插入,两者差不多,如果在中间插入则linkedlist比较快速。如果是查询ArrayList查询速度非常快。
    ArrayList有个容量的问题,如果超过容量之后,则需要扩容,扩容的规则是先扩大1.25倍,可以得到新容量的值a,在看老容量加上添加的数据的量可以得到新加总量b,两个取大的作为最终数据的容量值。
    linkedlist没有容量的概念。
  5. hashtable和hashmap的区别
    两者都是存放键值对,区别就在于hashtable是不可以有null键的,而hashmap是可以有null键的。
  6. 参数传递的时候,需要传递方法需要怎么实现?
    在jdk1.8之前,使用的是匿名内部类,在1.8之后使用的是λ表达式。
    方法传递一定要借助一个接口,首先定义一个接口。
    package com.xwq.test;
    public interface Myinterface {
    public int add(int a ,int b);
    }
    接口中有一个抽象方法,返回值int,参数a和b,名称add。
    在主类中,写一个方法,参数传接口,
    public static int NoNameClass(int a, int b, Myinterface myinterface) {
    return myinterface.add(a,b);
    }
    方法body里返回的是接口的抽象方法。
    在main方法中,调用此方法,采用此方式调用:
    int result = NoNameClass(30, 50, new Myinterface() {
    @Override
    public int add(int a, int b) {
    return a+b;
    }
    });
    前两个参数都是int类型的数字,第三个参数在声明的时候是一个接口,调用时可以使用new一个接口,紧接着就要实现这个方法,在实现这个方法的时候,你可以做出你对前两个参数的操作。
    这个new Myinterface就叫匿名内部类。
    λ表达式是在调用的时候使用如下方法:
    int result = NoNameClass(30, 50, ((a, b) -> {
    return a+b;
    }));
    System.out.println(result);
    这两种方法与平常的函数的区别:
    普通函数都是固定事件(对数的操作),参数变动。
    现在这种函数可以说是参数固定,操作变动
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值