Java基础
最基础的Java
西门吹雪叶孤城
爱生活,爱Java
展开
-
反射:反射的定义
1.引出反射问题1:1.对象有编译类型和运行类型 Object obj = new java.util.Date(); 编译类型: Object 运行类型: java.util.Date 需求:通过obj对象,调用java.util.Date类中的toLocaleString方法. obj.toLocaleString原创 2017-05-29 10:24:15 · 1541 阅读 · 0 评论 -
反射:Class类Class实例
1.Class类用来描述类或者接口的类型,描述类的类.Class类的实例: 在JVM中的一份份字节码,Class实例表示在JVM中的类或者接口,枚举是一种特殊的类,注解是一种特殊的接口.当程序第一次使用某一个java.util.Date类的时候,就会把该类的字节码对象加载进JVM,并创建出一个Class对象.此时的Class对象就表示java.util.Date的字节码.原创 2017-07-03 10:53:04 · 451 阅读 · 0 评论 -
反射:获取类中的构造器
1.通过反射来获取某一个类的构造器1):获取该类的字节码对象.2):从该字节码对象中去找需要获取的构造器.------------------------------------------------------------------------Class类获取构造器方法:Constructor类:表示类中构造器的类型,Constructor的实例就是某一个类中的某一个构造原创 2017-07-03 11:13:48 · 927 阅读 · 0 评论 -
反射:使用反射调用构造器创建对象
1.构造器最大的作用:创建对象为什么使用反射创建对象,为什么不直接来new呢?在框架中,提供给我们的都是字符串.-----------------------------------------------------------使用反射创建对象:步骤: 1);找到构造器所在类的字节码对象. 2):获取构造器对象. 3):使用反射,创建对象--原创 2017-07-03 13:01:17 · 1833 阅读 · 0 评论 -
反射:获取类中的方法
1.使用反射获取类中的方法1):获取方法所在类的字节码对象.2):获取方法.------------------------------------------------------------------------Class类中常用方法:public Method[] getMethods():获取包括自身和继承过来的所有的public方法public Method[原创 2017-07-03 13:43:00 · 1262 阅读 · 0 评论 -
反射:使用反射调用方法
1.使用反射调用方法1):获取方法所在类的字节码对象.2):获取方法对象.3):使用反射调用方法.------------------------------------------------------------------------如何使用反射调用一个方法:在Method类中有方法:public Object invoke(Object obj,Object.原创 2017-07-03 14:04:20 · 10424 阅读 · 0 评论 -
反射:反射调用静态方法和数组参数问题
1使用反射调用静态方法: 静态方法不属于任何对象,静态方法属于类本身. 此时把invoke方法的第一个参数设置为null即可.使用反射调用数组参数(可变参数): 王道:调用方法的时候把实际参数统统作为Object数组的元素即可. Method对象.invoke(方法底层所属对象,new Object[]{ 所有实参 });原创 2017-07-03 14:17:35 · 1384 阅读 · 0 评论 -
java网络编程之网络概述
1.计算机网路计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。从逻辑功能上看,计算机网络是以传输信息为基础目的,用通信线路将多个计算机连接起来的计算机系统的集合,一个计算机网络组成包括传输介质和通信设备。虽然网络类型的划分标准各种各样,但是从地理范围原创 2017-07-01 13:51:20 · 576 阅读 · 0 评论 -
java网络编程之IP
1.IP地址要想使网络中的计算机能够进行通信,必须为每台计算机指定一个标识号,通过这个标识号来指定接受数据的计算机或者发送数据的计算机。在TCP/IP协议中,这个标识号就是IP地址,它可以唯一标识一台计算机,目前,IP地址广泛使用的版本是IPv4,它是由4个字节大小的二进制数来表示,如:00001010000000000000000000000001。由于二进制形式表示的IP地址非常不便记忆和原创 2017-07-03 09:21:33 · 448 阅读 · 0 评论 -
java网络编程之端口
1端口(port)"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴。协议端口:如果把IP地址比作一间房原创 2017-07-03 09:25:00 · 1258 阅读 · 0 评论 -
java网络编程之协议
1.协议协议(protocol),网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。网络协议,也可简称协议,通常由三要素组成:(1)语法:即数据与控制信息的结构或格式;(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;(3)时序(同步)原创 2017-07-03 09:29:36 · 438 阅读 · 0 评论 -
java网络编程之application/x-www-form-urlencoded MIME
URLEncoder和URLDecoder用于完成普通字符串和application/x-www-form-urlencoded MIME字符串之间的相互转换.编码和解码: 在Web的浏览器中,不同的浏览器的编码和解码规则是不一样的. 对于W3C浏览器:遵循W3C组织规范的浏览器,(非IE). 编码:byte[] data = “杨哥”.ge原创 2017-07-03 09:46:19 · 3056 阅读 · 1 评论 -
java网络编程之传输协议
1.传输层协议TCP和UDP的区别:TCP :面向连接(经历三次握手)、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。 服务端和客户端UDP:面向非连接、传输不可靠(丢包[数据丢失])、用于传输少量数据(数据报包模式)、速度快。发送端和接收端2.tcp协议import java.io.IOExc原创 2017-07-03 10:27:39 · 785 阅读 · 0 评论 -
java的IO之File类
1.File类介绍和路径分隔符File类是IO包中唯一表示磁盘文件和磁盘目录的对象的路径.该类包含了创建,删除文件,重命名文件,判断文件读写权限以及文件是否存在,查询等功能方法.只能设置和获取文件本身的信息,不能设置和获取文件的内容.---------------------------------------------------------------------------原创 2017-06-26 13:11:19 · 457 阅读 · 0 评论 -
java的IO之输入和输出概述
1.什么是IO(Input/Output):输入和输出.IO设备: 和电脑通信的设备.输入设备:麦克风,扫描器,键盘,鼠标等.输出设备:显示器,打印机,投影仪,耳机,音响等.----------------------------------------------------------------------------为什么程序需要IO呢?案例1:打游戏操作,得分原创 2017-06-26 16:17:31 · 1633 阅读 · 0 评论 -
java的IO之字节流
1.文件流: 顾名思义,程序和文件打交道此时我们谈及的文件,值得是纯文本文件(txt的,不要使用Word,Excel),----------------------------------------------------------------- 在字节流中,暂时不要使用中文.FileInputStream: 文件的字节输入流FileOutputStream: 文原创 2017-06-26 16:42:48 · 283 阅读 · 0 评论 -
java的IO之字符流
1.为什么使用字符流文件的字节流: FileInputStream: FileOutputStream:------------------------------------使用字节流操作汉字或特殊的符号语言的时候,容易乱码,建议使用字符流.先有字节流,后有字符流,字符流是对字节流的补充.使用记事本打开某个文件,可以看到内容的就是文本文件,否则可以原创 2017-06-26 17:29:28 · 354 阅读 · 0 评论 -
java的IO流之字符编码
1.字符编码的发展历程阶段1:计算机只认识数字,我们在计算机里一切数据都是以数字来表示,因为英文符号有限,所以规定使用的字节的最高位是0.每一个字节都是以0~127之间的数字来表示,比如A对应65,a对应97.这就是美国标准信息交换码-ASCII.阶段2:随着计算机在全球的普及,很多国家和地区都把自己的字符引入了计算机,比如汉字.此时发现一个字节能表示数字范围太小,原创 2017-06-26 20:26:11 · 4282 阅读 · 2 评论 -
java的IO之包装流和缓存流
1.处理流/包装流(相对于节点流更高级)装饰设计模式/包装模式 1:隐藏了底层的节点流的差异,并对外提供了更方便的输入/输出功能,让我们只关心高级流的操作. 2:使用处理流包装了节点流,程序直接操作处理流,让节点流与底层的设备做IO操作. 3:只需要关闭处理流即可.包装流如何区分:写代码的时候,发现创建对象对象的时候,需要传递另一个流对象. new 包装流(原创 2017-06-26 20:56:19 · 1464 阅读 · 0 评论 -
java的IO之转换流
1.转换流:把字节流转成字符流 InputStreamReader:把字节输入流转成字符输入流. OutputStreamWriter:把字节输出流转成字符输出流.---------------------------------------------------------为什么有字节转字符流,没有字符转字节流. 字节流可以操作一切文件(纯文本文件/二进制文原创 2017-06-26 21:59:32 · 274 阅读 · 0 评论 -
java的对象流(序列化与反序列化)
1.序列化和反序列化序 列 化:指把堆内存中的Java对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络的节点(在网络上传输). 我们把这个过程称之为序列化.反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象的过程.为什么要做序列化: 1):在分布式系统中,需要共享的数据的JavaB原创 2017-06-27 13:57:22 · 1446 阅读 · 0 评论 -
java的IO之打印流
1.打印流打印数据的,打印流只能是输出流: PrintStream: 字节打印流 PrintWriter: 字符打印流对于PrintWriter来说,当启用字段刷新之后, 调用println或者printf或者format方法,便会立马刷新操作. 如果没有开启自动刷新,则需要手动刷新或者当缓冲区满的时候,再自动刷新. 使用打印流作为输出流,此时的输出操作会特别简单原创 2017-06-27 15:53:24 · 300 阅读 · 0 评论 -
java的IO之标准的IO
1.标准的IO 标准的输入: 通过键盘录入数据给程序. 标准的输出: 在屏幕上显示程序数据.-----------------------------------------------------------在System类中有两个常量: InputStream in = System.in;import java.io.IOException;im原创 2017-06-27 16:07:05 · 464 阅读 · 0 评论 -
java的IO之扫描器Scanner
1.java.util.Scanner类:扫描器类表示输入操作 存在的方法: xxx表示数据类型,如byte,int ,boolean等. boolean hasNextXxx():判断是否有下一种类型的数据 Xxx nextXxx():获取下一个该类型的数据.import java.io.F原创 2017-06-27 16:23:04 · 440 阅读 · 0 评论 -
java的IO之Properties类
1.配置文件:资源文件(以.properties作为拓展名的文件)/属性文件做项目开发,为何使用配置文件? 把所有的数据存储在代码中,写死了,”硬编码”.比如:在Java中需要连接数据库,必须拥有数据的账号和密码.此时我们就得在Java代码中编写,类似的代码: String username=”root”; String password=”admi原创 2017-06-27 19:01:48 · 309 阅读 · 0 评论 -
java集合框架概述
1.Java集合框架的由来其实在Java2(jdk1.2)之前,Java是没有完整的集合框架的。它只有一些简单的可以自扩展的容器类,比如Vector,StackHashtable等。为什么存在容器类: 容器类(集合类)可以存储多个数据,既然数组可以存储多个数据,为什么需要定义容器类. 数组的弊端:原创 2017-06-24 13:44:01 · 910 阅读 · 0 评论 -
java集合框架之Vector
1.Vector介绍在JDK2之前(在Java的集合框架之前),要存储多个数据,此时存在一个叫Vector类.Vector类底层其实就是一个Object数组,Vector类中的方法是支持同步(方法使用synchronized修饰)的.-----------------------------------------------------------------------------原创 2017-06-24 14:16:52 · 319 阅读 · 0 评论 -
java集合框架之栈Stack
1栈(Stack)数据结构的一种,存储特点:Last In First Out.Stack 类表示后进先出(LIFO)的对象栈.它通过五个操作对类Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作,以及取堆栈顶点的peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法首次创建堆原创 2017-06-24 14:58:44 · 1702 阅读 · 1 评论 -
java集合之ArrayList类
1.ArrayList类是Java集合框架出现之后用来取代Vector类的:二者底层原理都是基于数组的算法,一模一样.----------------------------区别:Vector: 所有的方法都使用了synchronized修饰符. 线程安全但是性能较低. 适用于多线程环境.ArrayList:所有的方法都没有使用synchr原创 2017-06-24 17:39:37 · 408 阅读 · 0 评论 -
java集合框架之LinkedList类
1.LinkedList类它是双向链表,单向队列,双向队列,栈的实现类:所以它里面的方法特别多,特别多重复功能的方法LinkedList类实现单向队列和双向队列的接口,自身提高了栈操作的方法,链表操作的方法. 在LinkedList类中存在很多方法,但是功能都是相同的.LinkedList表示了多种数据结构的实现,每一种数据结构的操作名字不同.------------------原创 2017-06-24 19:21:10 · 383 阅读 · 0 评论 -
java集合框架之List实现类的性能分析
面向接口编程:接口类型 变量 = new 实现类();List list = new ArrayList();---------------------------------------------------------List实现类特点和性能分析:---------------------------------------------------------原创 2017-06-24 19:39:39 · 385 阅读 · 0 评论 -
java集合框架之集合的迭代操作
1.集合的迭代操作 把集合做的元素一个一个的遍历取出来.---------------------------------------------------------------------迭代器对象: Iterator: 迭代器对象,只能从上往下迭代. boolean hasNext(); 判断当前指针后是否有下一个元素 Obje原创 2017-06-24 22:29:10 · 390 阅读 · 0 评论 -
java集合框架之泛型
1.为什么需要使用泛型 1):存储任意类型的数据在集合中 ,但是取出来都是Object类型的,此时就得强转. 2):约束存储到集合中的元素必须是相同的数据类型(相同的数据类型才能做比较,比如TreeSet类). 3):设计一个点(Point)类,来封装坐标位置,要求坐标位置支持String类型.Integer类型/Double类型.原创 2017-06-24 23:23:31 · 255 阅读 · 0 评论 -
java集合框架之集合体系
1.Collection集合体系(Map不属于Collection体系,它是属于映射)一张图说明一切原创 2017-06-25 10:17:33 · 391 阅读 · 0 评论 -
java集合框架之HashSet类
1.Set是Collection子接口模拟了数学上的集的概念。-----------------------------------------------------------------------Set集合存储特点: 1):不允许元素重复. 2):不会记录元素的先后添加顺序.------------------------------------原创 2017-06-25 11:22:20 · 340 阅读 · 0 评论 -
java集合框架之LinkedHashSet类
1.LinkedHashSet介绍List接口: 允许元素重复,记录先后添加顺序.Set接口: 不允许元素重复,不记录先后添加顺序.需求: 不允许元素重复,但是需要保证先后添加的顺序. LinkedHashSet:底层才有哈希表和链表算法. 哈希表:来保证唯一性,.此时原创 2017-06-25 15:16:33 · 286 阅读 · 0 评论 -
java集合框架之TreeSet类
1.TreeSet介绍TreeSet集合底层采用红黑树算法,会对存储的元素默认使用自然排序(从小到大).注意: 必须保证TreeSet集合中的元素对象是相同的数据类型,否则报错.2.TreeSet的排序规则自然排序(从小到大):TreeSet调用集合元素的compareTo方法来比较元素的大小关系,然后将集合元素按照升序排列(从小到大).注意:要求TreeS原创 2017-06-25 16:34:01 · 493 阅读 · 0 评论 -
java集合框架之Set集合实现类性能对比
1.Set接口的实现类共同的特点: 1):都不允许元素重复. 2):都不是线程安全的类. 解决方案:Set s = Collections.synchronizedSet(Set对象);-------------------------------------------------------------------------------------原创 2017-06-25 16:40:55 · 669 阅读 · 0 评论 -
java集合框架之Map映射
1.映射的数学解释设A、B是两个非空集合,如果存在一个法则f,使得对A中的每个元素a,按法则f,在B中有唯一确定的元素b与之对应,则称f为从A到B的映射,记作f:A→B。-------------------------------------------------------------映射关系(两个集合):A集合和B集合. A集合中的每一个元素都可以在B集合中找到唯一的一原创 2017-06-25 20:30:49 · 468 阅读 · 0 评论 -
java集合框架之Set和Map之间的关系
1.发现在Map和Set中有很多相类似的实现类名Set Map 算法--------------------------------------------------------------------------HashSet原创 2017-06-25 20:42:49 · 2373 阅读 · 0 评论