红茶的个人站点

  • 首页
  • 专栏
  • 开发工具
  • 其它
  • 隐私政策
Java编程笔记
Java学习过程中的积累
Java编程笔记

Java编程笔记26:HTTP

图源: Fotor懒设计 HTTP协议实际上是基于TCP的应用层协议,规定了请求报文和响应报文等。参考HTTP协议的规定,我们可以实现一个简单的HTTP Server。 前文Java编程笔记25:TCP - 红茶的个人站点 (icexmoon.cn)中我介绍了如何实现简单的TCP服务端和客户端,本文将在之前示例的基础上实现一个简单的HTTP服务。 HTTP的基本概念推荐阅读图解HTTP (豆瓣) (douban.com),或者Web基础 - 廖雪峰的官方网站 (liaoxuefeng.com)。 请求报文 创建一个…

2022年11月1日 0条评论 191点热度 0人点赞 魔芋红茶 阅读全文
Java编程笔记

Java编程笔记25:TCP

图源:Java Switch语句(用法详解)-java教程-PHP中文网 TCP和UDP通信可以说是网络应用的起点,原理方面的内容不在本文讨论范围内,这里直接展示如何用Java创建一个基于TCP的CS结构的网络应用。 Server package cn.icexmoon.java.note.ch25; // ... public class Main {    public static void main(String[] args) throws IOException {        ServerSocke…

2022年10月31日 0条评论 186点热度 0人点赞 魔芋红茶 阅读全文
Java编程笔记

Java编程笔记24:并发(4)

图源:PHP中文网 仿真 利用多线程可以编写仿真程序,实际上在Java编程笔记23:并发(3) - 魔芋红茶's blog (icexmoon.cn)中介绍的“赛马游戏”就是一个仿真程序。 这里我们介绍一个更复杂一点的仿真程序。 餐厅 假设我们有一个餐厅,有顾客、侍者、厨师这几个角色,顾客可以通过侍者来点菜,厨师根据订单来做菜,做好菜后由侍者将菜品送给顾客品尝。 package ch24.restaurant; ​ import java.util.ArrayList; import java.util.List;…

2022年5月4日 0条评论 222点热度 0人点赞 魔芋红茶 阅读全文
Java编程笔记

Java编程笔记23:并发(3)

图源:PHP中文网 新类库中的构件 JavaSE 5 为并发添加了一些新的组件,这里简单介绍。 CountDownLatch 在编写并发程序时,有时候我们会启动多个线程执行某项工作,而主线程需要等待这些线程完成后在继续执行或者退出。如果是Go或者其它语言,此时就必须使用sync.WaitGroup这样的组件去计数和等待。 关于Go的多线程和sync.WaitGroup,可以阅读Go语言编程笔记7:goroutine和通道 - 魔芋红茶's blog (icexmoon.cn)。 实际上Java也有类似的组件——Co…

2022年5月3日 0条评论 223点热度 0人点赞 魔芋红茶 阅读全文
Java编程笔记

Java学习笔记22:并发(2)

图源:PHP中文网 终止任务 终止线程有一种非常简单的方式:设置一个多线程共享的标记位,子线程用轮询的方式检查这个标记位,如果该标记位显示取消状态,就让子线程退出执行。 公园入园 关于这点,《Thinking in Java》中有一个公园入园的示例:假设有一个公园,存在多个入口可以入园,现在用程序统计每个入口已进入的人数,以及总的已入园人数。 这可以看做是一个简单的模拟程序,显然多个入口入园是一个并发的过程,要用多个线程去模拟。而总的入园计数器需要在多个线程之间共享。 最终的代码如下: package ch22.e…

2022年5月2日 0条评论 219点热度 0人点赞 魔芋红茶 阅读全文
Java编程笔记

Java学习笔记21:并发(1)

图源:PHP中文网 并发是《Thinking in Java》的最后一个章节(其实后边还有一个图形界面,但Java的图形界面组件早就被废弃了)。也是一个相当庞大和难以学习的章节,相关的概念性描述非常多,这里我没办法照搬原文(篇幅不允许),所以更多的是直接展示如何用代码实现,完整的概念性描述可以直接参考原书。 基本概念 Java将并发抽象成线程和任务,前者对应Thread类,后者对应Runnable或Callable接口。 Thread 可以通过从Thread类继承并创建实例的方式来编写简单的并发程序: packag…

2022年4月24日 0条评论 196点热度 0人点赞 魔芋红茶 阅读全文
Java编程笔记

Java编程笔记20:注解

图源:PHP中文网 注解(annotation)不同于可有可无的注释(comment),其同样是编程语言的重要组成部分。不同语言的注解其作用和风格也是不同的。 对于Python而言,因为它是一种强类型的动态语言,所以早期的Python缺乏在静态编译期的类型检查能力,因此后续PEP-484等PEP主键推出和完善了注解语法,通过注解可以帮助Python实现一部分的静态期类型检查能力。不过Python本质上依然是一种动态语言,注解被设置为非强制性的,也就是说有没有注解都不会影响程序运行。 对Python注解感兴趣的可以阅…

2022年4月16日 0条评论 230点热度 0人点赞 魔芋红茶 阅读全文
Java编程笔记

Java编程笔记19:枚举

图源:PHP中文网 之前在Java编程笔记2:初始化和清理 - 魔芋红茶's blog (icexmoon.cn)中简单介绍过枚举,在对反射和泛型等内容学习后,我们可以更深入地学习和理解枚举。 基本操作 下面这个例子说明了一些枚举的基本操作: package ch19.basic; ​ import util.Fmt; ​ enum Color {    RED, BLUE, GREEN, YELLO, BLACK } ​ public class Main {    public static void main…

2022年4月13日 0条评论 258点热度 0人点赞 魔芋红茶 阅读全文
Java编程笔记

Java编程笔记18:I/O(续)

压缩 IO相关类中有关于压缩和解压的类: 其中DeflaterOutputStream继承自FilterOutputStream,而InflaterInputStream继承自FilterInputStream,所以压缩相关的类操作的是字节流(这是显而易见的)。 用GZIP压缩单个文件 下面是一个将文件压缩和解压缩的简单示例: package ch18.compress; ​ import java.io.BufferedInputStream; import java.io.BufferedOutputStrea…

2022年4月6日 0条评论 212点热度 0人点赞 魔芋红茶 阅读全文
Java编程笔记

Java编程笔记17:I/O

I/O代表着输入(Input)和输出(Output),具体指从外部读取数据到内存中或者从内存中输出数据到外部。这里的“外部”可以是硬盘、磁带等本地存储介质,也可以是网络连接的远程设备。 输入和输出是以内存为中心而言的一个相对概念。毕竟对于一个最简单的计算机结构而言,内存和CPU是不可或缺的,我们的程序就是运行在内存中的,而其它的东西都是非必要的。所以虽然硬盘是存在于电脑内部的,但对于内存而言,依然是一个“外部存储器”。所以从硬盘读取数据到内存这个过程就称作输入(Input),而从内存读取数据到硬盘就称作输出(Out…

2022年4月5日 0条评论 236点热度 0人点赞 魔芋红茶 阅读全文
123

魔芋红茶

加一点PHP,加一点Go,加一点Python......

专栏
  • Spring Boot学习笔记 Spring Boot学习笔记
  • Java编程笔记 Java编程笔记
  • php学习笔记 php学习笔记
  • Go语言编程笔记 Go语言编程笔记
  • 设计模式 with Python 设计模式 with Python
  • Linux之旅 Linux之旅
  • 腾讯云博客搭建 腾讯云博客搭建
  • HTTP学习笔记 HTTP学习笔记
  • Python学习笔记 Python学习笔记
  • 生活随笔 生活随笔
项目
  • M3U-Helper M3U-Helper
  • Markdown-img Markdown-img
  • PEP中文翻译项目 PEP中文翻译项目
工具箱
  • 我的Windows软件列表 我的Windows软件列表
点歌台
最新 热点 随机
最新 热点 随机
我眼中的大刘 Old Man and Old Story 我和三体 软件推荐:AList Java编程笔记26:HTTP Java编程笔记25:TCP
真·DPC WATCHDOG VIOLATION 蓝屏 100% 解决方案 Python学习笔记31:迭代技术 从零开始 Spring Boot 15:Http Client 从零开始 Spring Boot 4:Mybatis Plus 设计模式 with Python 8:模版方法模式 VSCode远程开发
最近评论
fuckbaidu 发布于 1 年前(02月26日) 兄弟,你新网址一直没备案成功
啊长 发布于 1 年前(12月17日) 膜拜大佬了,希望越做越好 :exclaim:
nfmd 发布于 1 年前(11月01日) 腾讯云出了个60块六年多的bug
nfmd 发布于 1 年前(10月30日) str.replace("逻辑", "罗辑")
fuckbaidu 发布于 1 年前(10月14日) 并不是所有的文件都能通过软链接转移,比如chrome浏览器,你要是转移了,就不能自动更新了
友情链接
  • NFMD's blog
  • 小金龙的blog
  • 幸哥的blog

COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务

Theme Kratos Made By Seaton Jiang

宁ICP备2021001508号

宁公网安备64040202000141号