一.IP地址和端口号 1.作用 通过IP地址,唯一的定位互联网上一台主机. 端口号标识正在计算机上运行的进程,不同进程有不同的端口号,被规定为一个16位的整数0~65535,其中0~1023被预先定义的服务通信占用. 端口号和IP地址的组合得出一个网络套接字(socket). 2.InetAddress类 位于java.net包下,用来代表IP地址,一个InetAddress的对象就代表着一个IP地址. import java.net.InetAddress; import java.net.U…
一.网络基础概念 首先理清一个概念:网络编程 != 网站编程,网络编程现在一般称为TCP/IP编程.…
网络编程 InetAddress tcp udp…
一.String类 1.特点 String代表不可变的字符序列,底层用char[]存放. String是final的. 2.内存解析 3.常用方法 int length() char charAt(int index):返回指定位置的字符 boolean equals(Object obj):比较字符串的内容是否相等 int compareTo(String anotherString):对字符串内容按字典顺序进行大小比较,当前对象比参数大返回正整数,反之返回负整数,相等返回0. int ind…
一.多线程的创建 1.作用 程序需要同时执行两个或多个任务时需要多线程. 程序需要实现需要等待的任务时,如用户输入.文件读写操作.网络操作.搜索等,需要多线程. 需要一些后台运行的程序时,需要多线程. 2.实现 Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread来实现. Thread类的特性: 每个线程都是通过某个特定Thread对象的run()方法来完成操作的.经常把run()方法的主体称为线程体. 通过Thread对象的start()方法来启动这个线程. 3.创…
一.缓冲流(处理流的一种) 1.作用:可以提高文件操作的效率 2.使用BufferedInputStream和BufferedOutputStream实现非文本文件的复制 特点:flush()方法 代码示例: BufferedOutputStream bos = null; BufferedInputStream bis = null; try{ //1.提供读入.写入的文件 File file1 = new File("awsl.jpg"); File file2 = new Fil…
---恢复内容开始--- 一.包装类——Wrapper 1.定义:针对八种基本数据类型定义相应的引用类型——包装类(封装类) boolean——Boolean          byte——Byte short——Short                   int——Integer long——Long                    char——Character float——Float                     double——Double 2.作用:有了类的特点,…
一.JavaBean——可重用组件 1.JavaBean是指符合以下标准的Java类: (1)类是公共的 (2)有一个无参的公共的构造器 (3)有属性,且有对应的get.set方法 2.好处 用户可以使用JavaBean将功能.处理.值.数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面.Servlet.其他JavaBean.applet程序或者应用来使用这些对象.用户可以认为JavaBean提供了一个随时随地的复制和黏贴的功能,而不能关心任何改变…
一.流程控制语句补充 1.switch语句 格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 注意事项: 表达式:这个地方的取值是有限定的 byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 面试题: switch语句的表达式可以是byte吗?可以是long吗?可以是String吗? 可以是byte,long不行,jdk7以后…
一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你要是给在外地的人打电话,你应该怎么做? 首先你要确保你们两个的座机要有一堆连接介质连接(电话线,转换器等等)咱们统称物理连接介质. 其次,你要拨号,锁定对方的电话. 最后就开始通话了. 通话是有学问的,当时那个年代还没有推广普通话,所以你要是和河南的人电话联系,你要讲河南话. 你要是和东北的人电话联…
一.Java动态代理 1.代理设计模式的原理 使用一个代理将对象包装起来, 然后用该代理对象取代原始对象. 任何对原始对象的调用都要通过代理. 代理对象决定是否以及何时将方法调用转到原始对象上. 2.静态代理 特征是代理类和目标对象的类都是在编译期间确定下来,不利于程序的扩展.同时,每一个代理类只能为一个接口服务,这样一来程序开发中必然产生过多的代理. 3.动态代理 动态代理是指客户通过代理类来调用其它对象的方法,并且是在程序运行时根据需要动态创建目标类的代理对象. 4.代码示例 静态代理代码:…
一.Refection定义 1.概述 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法. 2.功能 在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的成员变量和方法 生成动态代理 3.反射相关的主要API java.lang.Class:代表一个类java.lang.reflect.Metho…
一.线程的特点 1.线程的分类 java中的线程分为两类:守护线程和用户线程.唯一的区别是判断JVM何时离开. 守护线程是用来服务用户线程的,通过在start()方法前调用Thread.setDaemon(true)可以把一个用户线程变成一个守护线程. java垃圾回收就是一个典型的守护线程:若JVM中都是守护线程,当前JVM将退出. 2.线程的生命周期 3.线程的同步机制 (1)线程的安全问题 在上一篇随笔中,多窗口售票的程序代码存在线程的安全问题,打印车票会出现重票.错票. 安全问题存在的原…
一.java.io.FIle类 1.特点 (1)凡是与输入.输出相关的类.接口等都定义在java.io包下. (2)File是一个类,使用构造器创建对象,此对象对应一个文件(.txt .avi .doc .ppt .mp3 .jpg)或文件目录 (3)FIle类对象与平台无关,具有跨平台性 (4)File中的方法,仅涉及到如何创建.删除.重命名等等,如果涉及文件内容的操作,File是无能为力的,必须由io流来实现. (5)代码示例 import java.io.File; class Test{…
一.枚举类 1.概述:即一个类中只能有有限个对象,若只有一个对象,则可以作为单例模式的一种实现. 2.自定义枚举类(JDK1.5以前这么做) //枚举类 class Season{ //1.提供类的属性,声明为private final private final String seasonName; private final String seasonDesc; //2.声明为final的属性,在私有构造器中初始化 private Season(String seasonName,Strin…
一.集合 1.Set:存储的元素是无序的.不可重复的 (1)无序性:无序性不等于随机性,无序指的是元素在底层存储的位置是无序的. (2)不可重复性:当向Set中添加相同的元素时,后添加的元素不能添加进去:要求添加进Set的元素所在的类,一定要重写equals()方法和hashCode()方法,从而保证Set中元素的不可重复. (3)Set中的元素如何存储——哈希算法 当向Set中添加对象时,首先调用此对象所在类的hashCode()方法,计算该对象的哈希值,此哈希值决定了对象在Set中的存储位置…
一.Java集合 1.概述 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就需要对对象进行存储.另一方面,使用Array存储对象具有一些弊端,而Java集合就像一种容器,可以动态的把多个对象的引用放到容器里.Java集合类可以用于存储数量不等的多个对象,还可以保存具有映射关系的关联数组. Java集合可分为Collection和Map两种体系: Collection接口: |- - - - -Set接口:元素无序.不可重复的集合,类似数学的“集合” |- - - -…
一.异常处理 1.结构 java.lang.Object |-----java.lang.Throwable |-----java.lang.Error:错误,java程序对此无能为力,不显式处理 |-----java.lang.Exception:异常,需要进行处理 |-----RuntimeException:运行时异常,较常见,可以不显式处理 |-----ArrayIndexOutOfBoundsException/NullPointerException/ArithmeticExcept…
一.面向对象 1.特点: A:是一种更符合我们思考习惯的思想B:把复杂的事情简单化C:让我们从执行者变成了指挥者 2.使用: a:创建对象格式类名 对象名 = new 类名();b:如何使用成员变量和成员方法对象名.成员变量对象名.成员方法() 3.对象内存图 注意: 对象的方法在类的定义时就在方法区生成了,创建具体对象时再通过地址(0x001)调用该方法,不同的对象都是调用同一个方法. 4.Java面向对象开发.设计.特征 A:开发:就是不断的创建对象,通过对象调用功能B:设计:就是管理和维护…
网络通信三要素 ip地址:InetAddress 网络中设备的标识,不易记忆,可用主机名(计算机的标识号) 端口号:用于标识进程的逻辑地址,不同进程的标识(正在运行的软件的标识号) 传输协议:通讯的规则 常见协议:TCP,UDP IP地址 IP地址是指互联网协议地址(Internet Protocol Address,又译为网际协议地址),是IP Address的缩写.IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异. 端…
一.泛型(Generic)在集合中的使用 1.作用 (1)解决元素存储的安全问题 (2)解决获取数据元素时,需要类型强转的问题 2.代码案例 //在集合没有使用泛型的情况下 List list = new ArrayList(); //list用来存放成绩 list.add(); list.add(); list.add(); //在没有使用泛型时,任何Object及其子类都可以添加进来,不安全 list.add(new String("AA")); ; i < list.siz…
一.Map接口 1.概述:Map与Collection并列存在,用于保存具有映射关系的数据Key-Value. Map接口 |- - - - -HashMap:Map的主要实现类 |- - - - -LinkedHashMap:使用链表维护元素添加到Map的顺序,故遍历Map时,是按添加进的顺序遍历的. |- - - - -TreeMap:按照元素的key的指定属性进行排序,要求所有元素的key必须是同一个类的对象:也有针对key的自然排序和定制排序,详见TreeSet. |- - - - -H…
一.数据类型补充问题 数据类型的自动转换等级: byte,short,char -- int -- long -- float -- double long是8个字节,float是4个字节,为什么是这么转换的? 理由:它们底层的存储结构不同:float表示的数据范围比long要大. 二.运算符 1.算术运算符 +,-,*,/,%,++,-- %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算. +:可以是加法.正号.字符串连接符 2.赋值运算符 =,+=,-=,*=,/=,%=…
主要应用urllib和requests模块 urllib模块返回类型为bytes,需要数据类型转换:requests就方便很多. 例子1:发送post请求 url = 'http://api.nnzhp.cn/api/user/login' data = {'username':'niuhanyang','passwd':'aA123456'} req = requests.post(url,data) #发送post请求,第一个参数是url,第二个参数是请求的数据 print(req.json…
JAVA第十周<网络编程>学习内容总结 学习内容总结 1.初听到网络编程四个字可能会觉得很困难,实际上网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据,把数据发送到指定的位置,或者接收到指定的数据. 2.路由器和交换机组成了核心的计算机网络,计算机只是这个网络上的节点以及控制等,通过光纤.网线等连接将设备连接起来,从而形成了一张巨大的计算机网络. 3.网络最主要的优势在于共享. 4.我们通过IP地址找到网络上的计算机,IP地址是指网络中的每个设备都会有一个唯一的数字标识.现在命名I…
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web资源,URLDecode和URLEncode用来转换字符串. 本文会写两个例子来演示java网络编程的一些基本用法. 第一个例子,用java实现http get 和 post请求 本例涉及如下知识点, HTT协议规范 使用URL对象建立HTTP协议的网络连接URLConnection对象conn,本…
Java基础教程:网络编程 基础 Socket与ServerSocket Socket又称"套接字",网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. ServerSocket,此类实现服务器套接字.服务器套接字等待通过网络传入的请求然后基于该请求执行某些操作,可能向请求者返回结果. Socket方法 getInetAddress(); //远程服务端的IP地址 getPort(); //远程服务端的端口 getLocalAddress() /…
Java语法基础(1) 1.      Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用.在Java中对应不同的操作系统我们有不同的JVM,而java编译后的字节码文件(也就是.class文件)最终是运行在java虚拟机上,至于跟所在的操作系统进行交互等由java虚拟机去进行解决,java虚拟机与操作系统交互的过程,程序员并不需要关心,所以我们说java是一门跨平台语 2.      安…
20155324 <Java程序设计>实验五 网络编程与安全 实验内容 任务一 编写MyBC.java实现中缀表达式转后缀表达式的功能 编写MyDC.java实现从上面功能中获取的表达式中实现后缀表达式求值的功能 参考:数据结构应用 栈的应用 栈 (Stack)是一种只允许在表尾插入和删除的线性表,有先进后出(FILO),后进先出(LIFO)的特点.允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom). 栈的一个应用是用来对四则运算表达式进行求值. 表达式Exp = S1 +…
20155317 <Java程序设计>实验五网络编程与安全实验报告 遇到问题 在刚开始启动客户端或者服务端时,出现了一系列的错误情况,总是提示异常信息 后来经过询问同学,反应将端口号修改一下,但要大于1024,就可以成功运行但是并不能成功 后来经过上网查证,发现问题的本源在于端口号是否被占用,曾经打开过的服务端和客户端会在后台继续运行,占用端口. 出现address already in use: jvm_bind这个错误后,我们在任务栏的空白处点击鼠标右键,然后再弹出菜单里选择[任务管理器]…