Java中网络编程
主要内容
软件架构CS/BS
网络通信三要素
TCP通信
Socket套接字
ServerSocket
教学目标
能够辨别UDP和TCP协议特点
能够说出TCP协议下两个常用类名称
能够编写TCP协议下字符串数据传输程序
能够理解TCP协议下文件上传案例
能够理解TCP协议下案例2
第一章 网络编程入门1.1软件结构
C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。
B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。
两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。
1.2 网络通信协议
网络通信协议:通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能 ...
Java笔记14-软件开发流程&设计原则
今天内容:
1.常用的设计原则
2.常用的设计模式
3.常用的查找算法
4.常用的排序算法
1.常用的设计原则(记住)1.1软件的开发流程软件开发授权-投标 -> 100万
1. 编写需求分析文档 =>
2. 概要设计文档(架构) =>
3. 详细设计文档(类图) =>
4. 编码(项目经理分具体任务)
还要测试 (SVN/GIT)单元测试,模块测试(一般都是美女多一些,对于技术要求比较低) 黑盒测试 白盒测试
5. 安装和调试
写使用说明文档
6. 维护和升级
软件公司和客户协商(钱要到位)
还有一锤子买卖的(就是不管维护那种)
如果整个开发周期是半年(可能编码只占一个月的时间)
架构师把架构架构错了,那就都白干了,重新架构意味着要加班,这种情况不多,因为架构师至少要5年以上经验的
绝大多是是客户的需求问题,或者是客户要加功能.
1.2常用的设计原则1. 开放封闭原则(Open Close Principe)对于扩展开放,对于修改关闭,为了使程序的扩展性好,易于维护如:
123456public clas ...
jupyter浅析
一、jupyter 起步:简介Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含代码、方程式、可视化和文本的文档。它的用途包括:数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等等。它具有以下优势:
可选择语言:支持超过40种编程语言,包括Python、R、Julia、Scala等。分享笔记本:可以使用电子邮件、Dropbox、GitHub和Jupyter Notebook Viewer与他人共享。交互式输出:代码可以生成丰富的交互式输出,包括HTML、图像、视频、LaTeX等等。大数据整合:通过Python、R、Scala编程语言使用Apache Spark等大数据框架工具。支持使用pandas、scikit-learn、ggplot2、TensorFlow来探索同一份数据。
二、安装与运行虽然Jupyter可以运行多种编程语言,但Python是安装Jupyter Noterbook的必备条件(Python2.7,或Python3.3以上)。有两种安装方式:使用Anaconda安装或使用pip命令安装。关于安装的全部信息可以在官网读到:安装Ju ...
Java中缓冲流、转换流、序列化流
主要内容
缓冲流
转换流
序列化流
打印流
教学目标
能够使用字节缓冲流读取数据到程序
能够使用字节缓冲流写出数据到文件
能够明确字符缓冲流的作用和基本用法
能够使用缓冲流的特殊功能
能够阐述编码表的意义
能够使用转换流读取指定编码的文本文件
能够使用转换流写入指定编码的文本文件
能够说出打印流的特点
能够使用序列化流写出对象到文件
能够使用反序列化流读取文件到程序中
第一章 缓冲流昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。
1.1 概述缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类:
字节缓冲流:BufferedInputStream,BufferedOutputStream
字符缓冲流:BufferedReader,BufferedWriter
缓冲流的基本原理,是在创建流对 ...
Java中字节流、字符流
主要内容
IO流
字节流
字符流
异常处理
Properties
教学目标
能够说出IO流的分类和功能
能够使用字节输出流写出数据到文件
能够使用字节输入流读取数据到程序
能够理解读取数据read(byte[])方法的原理
能够使用字节流完成文件的复制
能够使用FileWirter写数据到文件
能够说出FileWriter中关闭和刷新方法的区别
能够使用FileWriter写数据的5个方法
能够使用FileWriter写数据实现换行和追加写
能够使用FileReader读数据
能够使用FileReader读数据一次一个字符数组
能够使用Properties的load方法加载文件中配置信息
第一章 IO概述1.1 什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。
我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出output ...
Java中File类、递归
主要内容
File类
递归
教学目标
能够说出File对象的创建方式
能够说出File类获取名称的方法名称
能够说出File类获取绝对路径的方法名称
能够说出File类获取文件大小的方法名称
能够说出File类判断是否是文件的方法名称
能够说出File类判断是否是文件夹的方法名称
能够辨别相对路径和绝对路径
能够遍历文件夹
能够解释递归的含义
能够使用递归的方式计算5的阶乘
能够说出使用递归会内存溢出隐患的原因
第一章 File类1.1 概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
1.2 构造方法
public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。
public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 Fi ...
servlet的配置以及使用
servlet:server applet* 概念:运行在服务器端的小程序
servlet就是一个接口,定义了java类被浏览器访问到(tomcat)识别的规则.
将来我们自定义一个类,实现servlet接口,复写方法.
* 快速入门:
创建一个JavaEE项目javaee7,tomcat路径配置
定义一个类,实现servlet接口 123public class ServletDemo1 implements Servlet { // 重写方法}
实现接口中的抽象方法alt+enter
配置servlet
在web.xml中配置
1234567891011<!-- 配置servlet--><servlet> <servlet-name>demo1</servlet-name> <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class></servlet><!-- 写map ...
Java中线程池、Lambda表达式
主要内容
等待与唤醒案例
线程池
Lambda表达式
教学目标-[ ] 能够理解线程通信概念-[ ] 能够理解等待唤醒机制-[ ] 能够描述Java中线程池运行原理-[ ] 能够理解函数式编程相对于面向对象的优点-[ ] 能够掌握Lambda表达式的标准格式-[ ] 能够使用Lambda标准格式使用Runnable与Comparator接口-[ ] 能够掌握Lambda表达式的省略格式与规则-[ ] 能够使用Lambda省略格式使用Runnable与Comparator接口-[ ] 能够通过Lambda的标准格式使用自定义的接口(有且仅有一个抽象方法)-[ ] 能够通过Lambda的省略格式使用自定义的接口(有且仅有一个抽象方法)-[ ] 能够明确Lambda的两项使用前提
第一章 等待唤醒机制1.1 线程间通信概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。
比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。
为什么要处理线程间通信: ...
Java笔记10-Map集合
Map集合Map集合就是python中的dict
Map集合的定义(声明)Map<key的泛型, 值的泛型> 变量名 = new HashMap<key的泛型, 值的泛型>();
例如
1Map<Integer, String> m1 = new HashMap<Integer, String>();
增加和修改操作123Object.put(new key, new value);// 如果没有就是增加,有就是修改// 返回值为原来的那个value的值,没有就返回null
查找操作123Object.get(Object key)// 如果不存在,返回null
判断存在操作判断建存在
12Object.containsKey(1)// 返回布尔类型
判断值存在
12Object.containsValue("one")// 返回布尔类型
Java笔记11-【异常、线程】
主要内容
异常、线程
教学目标
能够辨别程序中异常和错误的区别
说出异常的分类
说出虚拟机处理异常的方式
列举出常见的三个运行期异常
能够使用try…catch关键字处理异常
能够使用throws关键字处理异常
能够自定义异常类
能够处理自定义异常类
说出进程的概念
说出线程的概念
能够理解并发与并行的区别
能够开启新线程
第一章 异常1.1 异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是:
异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。
在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。
异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.
1.2 异常体系异常机制其实是帮助我们找到程序中的问题,异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Error与java.l ...