java学习之启航

java学习之启航,第1张

大家好,我是小黄人,回想在还没学习Java之前,自己还是一个对程序懵懵懂懂的小白,也不知道临近毕业的自己该怎么走下一步,直接找工作吗?找不到。就像是站在十字路口一样,没有红路灯,没有指路牌,也没有路人可以指引我方向,站在原地不知咋办😭救救我。磕磕碰碰兜兜转转我决定学习Java,继续提升编程能力。在短短的一个月时间里,我学到了很多,也了解了很多,学到了很多Java和前端知识。现在,将我这一段时间的学习情况总结如下:

第一阶段是学习Java基础部分,虽然是基础部分,但是知识点还是很多,学习到了计算机体系的结构,在Java中怎么声明和使用变量,Java语言中的数据类型,每一种数据类型的范围,比如byte by1 = 10和byte by5 = (byte) (by1 + by3)短短的两个式子经历的运算,为什么两个byte类型的数字相加还要强转?byte by2 = 1000为什么会出编译错误?这些都是在第一阶段的学习才深刻的明白了其中的原理。由于Java是一种强数据型语言,在Java中就得严格的编写顺序以及语法,就像变量a的a++和++a的区别,谁先谁后给程序结果带来的影响区别,另外还更加了解了程序运行的结构和Java中的数组知识等等。🐇

        第二阶段是进一步学习Java编程的特点,Java面向对象部分。以前只是知道有面向对象这一个东西,现在就能深入的明白了一切事物皆可称为对象,在Java的类中把具有相同属性和行为的对象称之为集合,类也是对象的数据结构。Java编程就是在定义数据的结构,用不同的类表示不同的数据结构。也深入的学习了Java类的继承、函数的声明定义、对象数组、内部类等。一下是我日常学习的截图和笔记:👾

 

这一张是每天对当天所学知识做的笔记。

        接下来就是学习Java高级部分,上一部分是每一个方法,每一个类都要自己写,然后自己调用自己写的方法,相当于程序的从头到尾都是自己亲历亲为Java高级部分就是学习如何使用jdk定义好的类,如何顺畅的使用jdk中的类去存储使用自己的数据。

同样也有每天总结自己的笔记,线程的这一部分还是挺有趣的, 首先写一个服务区程序。

package com.hqyj.pm;

import java.io.*;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

/*
 * 服务器端程序
 * */
public class Server {
    //运行在服务器端的套接字
    private ServerSocket server;

    //在构造器中初始化server
    public Server() throws IOException {
        /*
         * 端口号:每个程序都有一个端口号,用于标记应用程序,
         * 通过这个端口号,找到这个程序
         * 同一个电脑中运行的程序的端口号不能重复
         * 本程序占用6666端口号,如果启动这个程序的时候,计算机中已经有程序使用了6666,那么就会抛异常
         * 如果没有其他程序使用这个端口号,那么计算机就知道这个程序使用了6666端口
         * 当有其他程序有消息发过来找9999
         * 计算机就会将消息发给程序
         * */
        System.out.println("开始初始化");
        server = new ServerSocket(6666);
        System.out.println("初始化成功");
    }

    //服务器端开始工作了
    public void start() throws IOException {
        //监听6666端口,是否有客户端来凝结,返回连接对应socket对象
        //accept:阻塞方法,等待客户端连接,直到有客户端连接,否则一直等待
        try {
            while (true) {
                System.out.println("等待客户端链接....");
                Socket socket = server.accept();//阻塞方法
                //通过socket对象获取远端的一些地址信息,客户端的一些信息
                InetAddress inetAddress = socket.getInetAddress();
                //获取客户端的一些信息
                String hostAddress = inetAddress.getHostAddress();
//                String hostName = inetAddress.getHostName();
                //获取端口号
                int port = socket.getPort();
                System.out.println(hostAddress + ":" + port + "连接成功!");
                //对流进行处理:读取客户端的内容
                InputStream inputStream = socket.getInputStream();
                InputStreamReader reader = new InputStreamReader(inputStream);
                BufferedReader br = new BufferedReader(reader);//包装
                String word = br.readLine();
                System.out.println(hostAddress+"说:"+word);//打印客户端的信息
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    //注意:反复多次启动服务器会出现异常,或者程序自动会关闭之前的连接
    public static void main(String[] args) throws IOException {
        Server server = new Server();//包含初始化服务器
        server.start();//启动服务器

    }
}

然后写一个客户端。

package com.hqyj.pm;

import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

/*
 * 客户端程序
 * */
public class Client {
    //客户端的socket
    private Socket socket;
    //初始化
    public Client() throws InterruptedException, IOException {
        System.out.println("开始连接服务器..");
        Thread.sleep(2000);//两秒再连接
//        socket = new Socket("IP地址",端口号);
        /*
        * host:主机,通过ip地址来表达
        * localhost和127.0.0.1是对应关系,都是表示本机
        * port:服务器端口号,()通过host,找到连接的服务器的地址,通过port服务器上运行的程序
        * 如果创建成功,说明和服务器端连接成功,客户端运行的时候会自动分配一个端口号
        * */
        socket = new Socket("192.168.3.220", 9520);
        System.out.println("服务器连接成功...");
    }

    /*
    * 启动客户端,通过输入输出流和服务器通讯
    * */
    public void start() {
        OutputStream outputStream = null;
        OutputStreamWriter osw = null;
        PrintWriter pw = null;
        try {
            System.out.println(socket);
            outputStream= socket.getOutputStream();
            osw = new OutputStreamWriter(outputStream);
            pw = new PrintWriter(osw);
            System.out.println(pw);
            //从键盘输入一句话,发送给服务器端
            System.out.println("请输入内容:");
            Scanner scanner = new Scanner(System.in);
            pw.println(scanner.nextLine());//写入(发送给服务器端)
            pw.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            pw.close();
        }
    }


    public static void main(String[] args) throws IOException, InterruptedException {
        Client client = new Client();//初始化完成
        client.start();
    }
}

这样就可以实现一个简单的服务器和客户端的对话了,嘻嘻🤭。

        第四阶段就是现在的这个阶段了,前端部分刚刚结束,差不多就是HTML、css、javaScript、JQuery、JSON这些内容,要学习的内容真的特别多、现在都觉得我的脑瓜在膨胀,嘿嘿🤭。不过也不能飘了啦,需要学习的还有好多呢!前端的代码特别多,给大家看一下我学习预设动画这一小部分的练习。



	
		
		
		
		
	
	
		

		
		
		
		
		

每一个小知识点都有写注释,在华清远见的学习之路很开心,未来可期😀各位程序猿们卷起来吧!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/743382.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-29
下一篇 2022-04-29

发表评论

登录后才能评论

评论列表(0条)

保存