大家好,我是小黄人,回想在还没学习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这些内容,要学习的内容真的特别多、现在都觉得我的脑瓜在膨胀,嘿嘿🤭。不过也不能飘了啦,需要学习的还有好多呢!前端的代码特别多,给大家看一下我学习预设动画这一小部分的练习。
每一个小知识点都有写注释,在华清远见的学习之路很开心,未来可期😀各位程序猿们卷起来吧!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)