实训经验分享day12

一、课前分享/*------------------------------------------------------*/

早:
垃圾回收:如何分辨垃圾?GCRoot。标记清楚算法-容易产生内存碎片
压缩算法
复制算法-年轻代->老年代    扫描一次就将年龄加一,达到一定次数后进入老年代。


中:
流 
字节流,字符流,
输入流,输出流

晚:
super关键字

腰肌缓解

二、上课内容/*------------------------------------------------------*/

上午:
对象的内存分析
类编译后生成的文件存放在out目录下
new的执行步骤:
1)在堆中开辟一块内存空间,同时类的成员变量跟随对象一起进入到堆内存附默认值
2)调用构造器为对象初始化信息
3)将对象的地址返回给引用

下午:
java中方法参数类型和返回值类型可以是任意数据类型,其本质为值传递,基本数据类型就传递数据值,引用型数据类型就传递对象的地址值。
构造器
有参,无参
用this在构造器中调用另一个构造器this()
this:在构造器中代表new的对象,在成员方法中代表调用该方法的对象。
自学了一会儿线程
实现多线程的方法有三种:继承Thread类、实现Runnable接口、实现Callable接口
并发控制可以通过重写特定的run()方法来实现
步骤如下:
1)循环
2)synchronized代码块或方法
3)判断静态量是否到结尾,是
4)判断静态量是否到结尾,否

学了一会儿网络编程
三大核心:IP、端口号、协议
IP:ipv4 32位,4组,IP不够用,所以有了ipv6 128位 8组
ipv4不够用时在一些公司或者学校里面会使用局域网用于节省IP。
127.0.0.1为localhost(本机IP),向这个IP发送消息永远是自己给自己发送消息,可用于测试。ipconfig查看IP,ping查看网络是否连通。
InetAdress是java中用于获取IP的类
InetAdress adress = InetAdress.getByName("主机名")
adress 即获取到的电脑IP,在网络中特地指代一台电脑。

端口号:
1)端口号是应用程序的唯一标识
2)端口号的范围是0~65535,其中0~1023为一些知名网络服务占用,我们能用的端口号是1024即以后的。
3)一个端口号只能被一个应用程序使用

协议:连接和通信的规则被称为网络通信协议
最初的网络服务协议是ISO模型(七层),后来有了TCP(四层),简化了协议的结构
UDP(用户数据报协议)和TCP(传输控制协议)的区别:
UDP是面向无连接通信协议,传输数据快,但一次最多只能传输64KB,且传输的数据不安全,一般应用与通话,线上会议,视频当中,即使丢失了一两帧数据也无所谓。
TCP是面向连接的通信协议,传输慢,但是没有大小限制,数据安全,一般用于文字聊天等。
 

三、代码练习/*------------------------------------------------------*/

package youjixian01a;

public class test21 {
    public static void main(String[] args) {
        Baker lihua = new Baker();
        lihua.name = "lihua";
        lihua.rank = 1;
        System.out.println("lihua 是初级蛋糕师,只会做苹果蛋糕...");
        Cake myCake = lihua.makeCake();
        System.out.println(myCake);
    }

}

class Baker{
    public String name;
    public int rank;

    public Cake makeCake(){
        Cake appleCake = new Cake();
        appleCake.price = 99;
        appleCake.color = "红色";
        appleCake.size = 16;
        return appleCake;
    }

}

class Cake{
    public int price;
    public String color;
    public int size;

    @Override
    public String toString() {
        return "你的蛋糕做好啦--->"+"这是一个"+size+"寸的"+color+"蛋糕,价格是"+price+"元";
    }
}
package youjixian01a;
//定义学生类,包含学生姓名,年龄,学科,学生所在学校等信息,测试使用
public class test22 {
    public static void main(String[] args) {
        Student s1 = new Student("李华",22,"计算机科学与技术","清华大学");
        Student s2 = new Student("小伟",28,"计算机科学与技术","Colombia University");

        System.out.println(s1);
        System.out.println(s2);
        s2.show("lihua");//成员方法中的this指向调用该成员方法的对象

    }
}
class Student{
    private String name;
    private int age;
    private String subject;
    private String school;

    public Student(){}
    public Student(String name,int age,String subject,String school){
        //this在构造器中指代当前new的对象
        this(age,name,subject,school);
        this.name = name;
        this.age = age;
        this.subject = subject;
        this.school = school;
    }
    public Student(int age,String name,String subject,String school){
        //this在构造器中指代当前new的对象
        this.name = "test";
        this.age = 0;
        this.subject = subject;
        this.school = school;
    }

    public void show(String name){
        System.out.println(this.name);
        System.out.println(name);

    }

    @Override
    public String toString(){
        return name+","+age+","+subject+","+school;
    }

}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值