- 浏览: 16993 次
- 性别:
- 来自: 广州
-
最新评论
文章列表
TCP传输
Socket(客户端)和ServerSocket(服务端)
建立客户端和服务器端
建立连接后,通过Socket中的IO流进行数据的传输
关闭Socket()当关闭这个流,其实就是把底层的流所关闭
同样,客户端与服务器端程序是两个独立运行的应用程序.
基本思路:(客户端)
客户端需要明确服务器的IP地址和端口,这样才可以试图去建立连接.如果连接失败,会出现异常.
连接成功,说明客户端与服务器端建立了通道,那么通过IO流就可以进行数据的传输,而Socket对象已经提供了输入流和输出流对象,通过
getInputStream(), getOutputStream()获取即可.
与服 ...
Socket网络编程
网络协议
IP地址与端口号
本地回路IP: 127.0.0.1
有效端口:0-65535(尽量使用1024个以上-->1024个以上的被占用的概率比较低)
UDP与TCP(协议)
Udp:用户数据包协议,面向无连接,不保证数据的可靠性,不安全,速度快
Tcp:传输数据协议,面向连接,提供可靠无差错的协议,安全,三次握手.
UDP传输:
DatagramSocket 和:DatagramPacket
建立发送端,接收端
建立数据包,
调用Socket的发送接收方法.
关闭Socket
发送端与接收端是两个独立运行的小程序.
...
多线程的再度复习.class
package com.javami.kudy.Demo.ThreadStudy;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/*class MyArray
{
缺点:
不能准确的去唤醒一个进程.消耗资源.并且要判断... 而下面的.可以准确的唤醒下一个需要执行的..
...
javase_19(多线程)
- 博客分类:
- 1.javaSeBase
进程:
进程是具有一定独立功能的程序关于某个数据集合上的一次运动.
线程:
线程是进程里面的一个实体,是CPU调度或分派的基本单位
进程与线程之间的区别:
总而言之,一个进程里面可以有多个线程,但是一个进程至少有一个线程
多线程存在的意义:
程序允许有多个线程并发,提供程序的运行的效率
线程的创建方式:
new Thread().start();
多线程的应用:
Sun公司为我们提供了Thread类来实现线程
通过
AM上午总结:
package com.java.kudy.day17_2.ObjectReview;
public class ObjectTest {
/**
*虚拟机做了什么事情?
*1.在栈内存中定义了一个变量p
*2.在类加载器中加载Person.class
*3.在堆内存中开辟空间,分配了一个物理地 ...
javase_17(IO的总结)
- 博客分类:
- 1.javaSeBase
所有的流在使用完毕时,都需要调用close方法进行关流,释放资源。由于流操作都会有异常,如果发生异常就有可能导致close方法不能被调用所以,IO异常一定要处理,close方法写在finally语句中1.InputStream : 输入字节流 方法: read()从流(关联的设备)中读一个字节 ** int read(buf):从流中读取n个字节放入缓冲区,方法会返回一个读取字节的个数 ips-->buf读到一个-1,说明读到了流的末尾 ----------------------------------------------------------------------------- ...
javase_16(其它流)
- 博客分类:
- 1.javaSeBase
IO包中的其他流:
1.打印流
a)PrintWriter(写-->print打印) 与PrintStream (字符流)
PrintWriter用法一:其实它是对一个Writer进行了封装
package com.javami.kudyTest;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
public class PrintWriterTest {
/*
* PrintWriter 是对Writer 进行了一个封装
*/
...
File类:用来将文件或者文件夹封装成对象方便对文件或者文件夹的操作File对象可以作为参数传递给一个流.递归:函数自己调用自己应用场景:当某一个功能需要重复调用..1.遍历一个文件,并且让让这个文件写入到一个文本里面,(需要 ...
javase_13(字符流)
- 博客分类:
- 1.javaSeBase
IO(Input OutPut)流
IO流用来处理设备之间的数据传输
JAVA对数据的操作是通过流的方式
JAVA用于操作流的对象都在IO包中
流按操作对象分为两种: 字节流,字符流
流按流向分为: 输入流,输出流.
其它的内容还是比较简单的,注意的是以下这几个自定义包装类:
实现1.
MyBufferedReader.class
package com.javami.kudy.Code13;
import java.io.IOException;
import java.io.Reader; //读取字符流的抽象类
import java.io.I ...
Map集合
1.Map存储了一系列键值的映射关系2.Map集合需要保证键的唯一性3.可以通过键获取到值,反之则不能4.Map集合存储元素使用put(key,valus)方法.5.遍历Map集合的两种遍历方式a)通过KeySet方法返回由键组成的集合,迭代集合里面的元素拿到所有的键再通过get方法根据键来获取值b)通过entrySet方法返回键所映射的关系组成的集合,迭代该集合就拿到一个键值映射的关系,再通过getKey获取到键,再通过getValue()方法获取到值
HashMap线程不安全,存储速度快,允许存放null键,null值通过HashSet保持键的唯一性
Hashtabl ...
javase_11(集合的理解)
- 博客分类:
- 1.javaSeBase
集合类:
为什么使用集合类?
在面向对象的编程思想中,都是以对象的形式对事物进行描述的,为了保证对象的生命周期,我们需要持有对象(什么叫做持有对象呢?Person p = new Person())
数组和集合类的区别?
1.数组和集合类 ...
javase_14(字节流)
- 博客分类:
- 1.javaSeBase
字节流的抽象基类:
InputStream(输入) OutPutStream(输出)
字符流的抽象基类:
Reader(读) Writer(写)
这四个类派生出来的子类都是由父类的名作为子类名的后缀.
IO需要了解的问题:
1.有了垃圾回收站为什么还要调用close方法去进行关闭
解答: 虽然java已经垃圾回收了这个流,但是系统根本就不知道什么时候关闭这个流,所以我们要手动的去关闭
2.为什么IO异常一定要处理嗯?
解答:如果io异常不处理的, 当读到一个文件的时候出现错误,那么后面的也就会执行不到了.所以我们一定要异常处理/..
字符流创建一个文 ...
第一:
package com.javami.kudy.javaapi1.StringStudy;
public class StringDemo {
/*面试题:
* 1.Stirng s = "abc" String s = new String("abc"); //有什么区别?
* 2.String s = new String("abc"); 创建了几个对象 2个(池里没有)或 ...
Java的环境配置 day01
1. 环境配置有如下的三种方法:
a) 我的电脑属性: 从path 环境中配置
b) 利用临时的变量设置: set path = java的所在路径\bin%d%
c) 定义批处理文件 : 设置步骤如下:
a) set path = %cd%\H:\java\jdk1.7\bin
b)
c) start
一. java的环境搭配
1. 安装jdk >1.jdk是java的开发和运行环境 >2.jre是java的运行环境
2. 配置环 ...
javase_08(基础面试题)
- 博客分类:
- 1.javaSeBase
面试题:请说说抽象类和接口的区别
抽象类,使用abstract关键字修饰的类为抽象类,一般来说,含有抽象方法的类就需要定义为抽象类,但是抽象类不一定都有抽象方法,比如,在GUI当中,对于事件处理提供了很多监听器口里里面方法都是抽象的,每次进行事件处理时,都需要实现监听器接口,哪怕只处理一个简单的动作,也需要实现接口所有的方法,这样很麻烦,而且显得代码很臃肿,Java提供了适配器,适配器就是自己实现了监听器接口,但是所有的方法都是空实现,以后再用到监听器时,我们可以继承适配器,实现我们需要的方法就可以了,这样就很方便。像这样的适配器只是给调用者提供一个方便,一定不希望别人直接创建实例来使用,所以 ...