![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVASE
初步了解java
Notail^0^
心静脑清
展开
-
JAVA---TCP
TCP传输Socket和ServerSocket 建立客户端和服务端 建立连接后,通过Socket中的IO流进行数据的传输 关闭socket TCP分客户端和服务端 客户端对应的对象是Socket,服务端对应的对象是ServerSocket 同样,客户端与服务器端是两个独立的应用程序客户端:通过查阅socket对象,发现在该对象建立时,就可以去连接指定主机,因为TC...原创 2020-03-18 21:40:30 · 321 阅读 · 4 评论 -
JAVA---UDP
目录UDP传输实列一:发送端:接收端:示例二:发送类接收类主程序UDP传输DatagramSocket与DatagramPacket 建立发送端,接收端 建立数据包 调用Socket的发送接收方法 关闭Socket发送端与接收端是两个独立的运行程序实列一:发送端:/*需求:通过UDP传输方式,将一段文字数据发送出去思路:...原创 2020-03-18 12:17:17 · 122 阅读 · 4 评论 -
JAVA---网络编程
概念:计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来的,实现资源共享和数据传输的系统。网络编程就是编写程序使互联网的两个(或多个)设备(如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持。通过其提供的接口我们可以很方便地进行网络编程。网络模型OSI参考模型TCP/IP参考模型网络通讯要素IP地址网络中设备的标识...原创 2020-03-18 11:17:17 · 149 阅读 · 3 评论 -
JAVA---Properties类
概念:Properties是hashtable的子类,也就表明具有map集合的特点,而且它里面存储的键值对都是字符串 是集合和IO技术相结合的集合痛惜特点:可以用于键值对形式的配置文件配置文件的出现:当你在程序中设置好字体或字体颜色之后,关闭程序,如果保存在程序中,那么对随着内存的清除而消失,为了使用户下一次还能够使用上次设置的一些属性,如字体颜色,将配置信息持久化,就设置了配...原创 2020-03-15 09:40:37 · 219 阅读 · 5 评论 -
JAVA---File类
目录概念:流和File类方法:构造方法创建功能删除文件判断功能获取功能方法例子:list和listFiles()、过滤器list过滤器listFiles应用-递归示例二:删除文件-递归概念:用来将文件或者文件夹封装成对象 方便对文件与文件夹进行操作 File对象可以作为参数传递给流的构造函数 了解File类中的常用方法流和Fil...原创 2020-03-14 17:25:33 · 148 阅读 · 6 评论 -
JAVA---转换流
目录转换流什么时候使用?键盘的录入转换流的出现:流操作的基本规律:示例:转换流什么时候使用?涉及到字符编码转换时,需要用到转换流键盘的录入读取键盘录入System.out:对应的是标准输出设备:控制台System.in:对应的标准输入设备需求:当录入一行数据后,就将该行数据进行打印,如果录入的数据是over,那么停止录入import java....原创 2020-03-13 21:38:10 · 1086 阅读 · 4 评论 -
JAVA---字节流
在计算机中数据都是以二进制存取的,而字节是以byte型存取的如果刚好有连续的8个1,直接转成int型就还是-1,而在缓冲区中的read时,就意外满足了-1的控制条件从而导致读写操作无法进行,所以字节流缓冲区的read方法必须避免这种情况的发生生byte: -1 ---> int : -1;00000000 00000000 00000000 11111111 25511111111 11111111 11111111 1111111111111111 -->提升了一个int类原创 2020-03-13 11:21:02 · 193 阅读 · 3 评论 -
JAVA---字符流
目录文件写入:方式一:flush()方式二:colse()flush()和colse()区别:规范示例:对已有文件进行续写文件的读取方式一:read()方式二:read(char[])拷贝文件:字符流的缓冲区BufferedWriterBufferedReader示例:装饰者模式:继承和装饰的区别:实景应用:自定义装饰类...原创 2020-03-12 19:53:26 · 370 阅读 · 4 评论 -
JAVA---IO流
目录概念:IO流常用基类概念:IO流用来处理设备(内存和硬盘)之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流和字符流 流按流向分为:输入流,输出流字节流不管什么数据都可以传输,但是其中的文本数据比较特殊,单独分离出来成了字符流为什么要有字符流?因为每个国家都有自己的一套字节流标准,汉字和101...原创 2020-03-12 19:44:49 · 138 阅读 · 4 评论 -
JAVA---可变参数和静态导入
可变参数其实就是数组参数的简写形式,不同每一次都手动的建立数组对象,只要将要操作的原色作为参数传递即可,隐式将这些参数封装成了数组public static void main(string[] args){ /* int[] arr ={3,4}; show(arr); int[] arr1={2,3,4,5,6} show(arr1); ...原创 2020-03-11 14:58:41 · 134 阅读 · 3 评论 -
JAVA---Collections和Arrays
目录CollectionsCollection和Collections对比Collections线程安全方法示例shuffle()binarySearch()fill()replaceAll()reverseOrder()高级for循环Arrays:数组变成集合集合变数组为了方便对Array对象、Collection对象进行操作,Java...原创 2020-03-11 14:57:03 · 1769 阅读 · 1 评论 -
JAVA---Map
目录Map集合子类对象Map集合的两种取出方式:应用实例:从存到取Map集合该集合存储键值对,一对一对往里存,而且保证键的唯一性和set很像,Set底层就是使用了Map集合子类对象Hashtable:底层是哈希表数据结构,不可以存入null键,null值,该集合是线程同步的,jdk1.0,效率低HashMap:底层是哈希表数据结构,允许使用null值和nul...原创 2020-03-10 21:06:19 · 114 阅读 · 2 评论 -
JAVA---泛型
目录为什么要用泛型?泛型格式:在使用java提供的对象时,什么时候写泛型?使用泛型的好处:好处一:好处二:泛型类泛型方法静态方法:泛型接口泛型的限定为什么要用泛型?因为在定义集合的时候,没有明确存储的数据类型,当存了不同数据类型的元素时会出现错误,这样就有了安全隐患,为了解决这个安全隐患就提出了泛型泛型格式:通过<>来定义...原创 2020-03-09 21:02:40 · 117 阅读 · 2 评论 -
JAVA---集合框架list和set
下图是简略的集合框架,主要说明list,set中的集合list:元素是有序的,元素可以重复,因为该集合体系有索引(凡是可以操作索引的方法都是该体系中特有的方法)ArrayList:底层的数组数据结构,线程不同步,JDK1.2版本出现 特点:查询速度快,但是增删慢,因为有下标,所以查询速度要快,但是由于下标是有顺序的,如果有很多元素,删除和添加下标为一的元素...原创 2020-03-08 21:40:48 · 182 阅读 · 2 评论 -
JAVA---集合类和迭代器
为什么出现集合类?面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式存储对象的方式有哪些?集合和数组集合和数组有何不同?数组虽然也可以存储对象,但长度是固定的,可以存对象,也可以存储基本数据类型,但只能存相同数据类型的数据集合长度是可变的,只能存对象,可以存不同类型的数据集合框架:什么是集合框架...原创 2020-03-08 21:40:31 · 420 阅读 · 2 评论 -
JAVA---StringBuffer、StringBuilder、String
StringBuffer是字符串缓冲区,是一个容器而且长度是可变化的可以字节操作多个数据类型1.存储StringBuffer append(); //将指定数据作为参数添加到已有数据结尾处StringBuffer insert(index,数据);可以将数据插入到指定index位置2.删除StringBuffer delete(start,end); //...原创 2020-03-07 11:07:10 · 112 阅读 · 1 评论 -
JAVA类---String类
概念字符串是一个特殊的对象字符串一旦初始化就不可以被改变原创 2020-03-07 10:41:23 · 96 阅读 · 2 评论 -
JAVA---线程间通信
线程间的通讯:其实就是多个线程在操作同一个资源,但是操作的功能不同,如上图,一生产,一消费运行的代码不一致,两个run方法存放,但是都在操作同一资源1.避免操作资源搭配不对的情况在操作同一资源的时候,就有可能刚把mike输入,输出就获得了执行权,就输出了,还没有等man赋值就输出了怎么办?加锁,锁的对象是谁(找唯一对象,input.class,output....原创 2020-03-07 10:33:32 · 123 阅读 · 1 评论 -
JAVA---多线程及单例模式
进程是一个正在执行的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元线程是进程中的一个独立的控制单元,线程在控制着进程的执行,一个进程中至少有一个线程JVM中的进程和线程JAVA VM启动的时候会有一个进程java.exe该进程中至少一个线程负责java程序的执行,而且这个线程运行的代码存在于main方法中,该线程称之为主线程扩展:j...原创 2020-03-07 10:35:46 · 196 阅读 · 1 评论 -
JAVA---异常和包
目录异常:异常的由来:问题的划分:异常的体系异常体系的特点:异常的好处:异常的处理原则:对多异常的处理自定义异常如何定义异常信息继承Exception原因:throw和thorws的用法:RuntimeException对于异常分两种:异常应用异常处理三种格式:知识点:异常在子父类覆盖中的体现包:异常:就是程序在运...原创 2020-02-28 21:55:32 · 1657 阅读 · 4 评论 -
JAVA---面向对象
目录概念:核心特性:类和对象匿名对象两种使用情况封装:概念:好处:封装的原则:如何实现?构造函数特点:作用:隐藏机制:构造函数和一般函数的不同构造代码块:作用:特点:构造代码块和构造函数的区别:this:Static关键字用法:被修饰的成员具备以下特点:注意静态代码块:特点:实例变量和类变量...原创 2020-02-28 21:39:11 · 325 阅读 · 4 评论 -
JAVA---数组
概念:同一种数据类型的集合,其实数组就是一个容器好处:可以自动给数组中的元素从0开始编号,方便操作这些元素格式://元素类型[] 数组名=new 元素类型[元素个数或数组长度];int[] arr = new int[5];//元素类型[] 数组名 =new 元素类型[]{元素,元素,...};int[] arr = new int[]{3,5,1,7};int[]...原创 2020-02-28 21:17:54 · 230 阅读 · 8 评论 -
JAVA---函数
什么是函数:函数是定义在类中的具有特定功能的一段独立小程序 函数也称为方法函数的格式修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2...){ 执行语句 return返回值;}返回值类型:函数运行后结果的数据类型 参数类型:是形式参数的数据类型 形式参数:是一个变量,用于存储调用函数时传递给参数的实际参数 实际参数:传递给形式参...原创 2020-02-27 22:13:28 · 202 阅读 · 6 评论 -
JAVA---for循环和跳出循环
for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句} 变量有自己的作用域,对于for来说,如果将用于控制循环的增量定义在for语句中,那么该变量只在for语句内有效,for语句执行完毕,该变量在内存中释放(变量的作用域是在循环体内,还是类中,体内用for,类中用while) for和while可以进行互换,如果需要定义循环增量,用for更为合适//f...原创 2020-02-27 21:42:50 · 2161 阅读 · 6 评论 -
JAVA---运算符
目录算术运算符赋值运算符逻辑运算符比较运算符位运算符三元运算符算术运算符表 1 一元算术运算 运 算 符 名 称 说 明 例 子 - 取反符号 取反运算 b=-a ++ 自加一 先取值再加一,或先加一再取值 a++ 或 ++a -- 自减一 先取值再减一,或先减一再取值 ...原创 2020-02-27 21:13:42 · 346 阅读 · 6 评论 -
JAVA---数据类型和进制
一字节=8位类型 字节长度 二进制位数 取值范围 取值范围 int 4字节 32 -2 147 483 648 ~ 2147 483 647 [- 2^31, 2^31 - 1] short 2字节 16 -32 768 ~ 32 767 [- 2^15, 2^15 - 1] l...原创 2020-02-27 20:35:47 · 346 阅读 · 8 评论 -
JAVA---常量与变量
常量:概念:表示不能改变的数值分类:整数常量---所有整数 小数常量---所有小数 布尔型常量---只有两个数值,true和false 字符常量---将一个数字字母或者符号用单引号('')表示 字符串常量---将一个或者多个字符用双引号标识 null常量---只有一个数值就是null定义格式:用final修饰(也称最终变量) 常量在声明时必须赋初值,赋值后不能再修改...原创 2020-02-27 17:31:41 · 191 阅读 · 8 评论 -
Java代码规范
目录意义目的方法属性 (property)常量 (const)字段和变量注释原则意义 编码规范对于程序员而言尤为重要,做好代码规范,我们将获益良多:一个软件的生命周期中,80%的花费在于维护,代码规范降低了金钱成本和时间成本; 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护,代码规范减少了工作交接过程中的交流成本。3. 规...原创 2020-01-14 08:15:28 · 484 阅读 · 2 评论 -
JAVA面向对象各关键点联系总结
面向对象的重点关键字里氏转换 重写 多态 抽象 接口这些关键字的联系:通过里氏转换,可以使父类引用指向子类中的父类,通过重写子类可以使用父类的方法,通过里氏转换和重写,在程序运行中,就可以实现多态(根据new的对象(子类)不同,调用不同对象中的方法),通过抽象,可以不用在父类写方法体,而且必须让子类重写,通过接口,可以避免多重继承带来的麻烦,不知道该调用多个父类相同方法的哪一个,...原创 2019-11-09 17:42:34 · 152 阅读 · 22 评论 -
JAVA-接口
目录一、多个无关的类可以实现同一个接口二、一个类可以实现多个无关的接口三、与继承关系类似,接口与实现类之间存在多态性四、接口是抽象方法和常量值的定义的集合五、从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现六、接口可以多重实现七、接口中声明的属性默认为public static final的,也只能是public stati...原创 2019-11-09 17:33:37 · 189 阅读 · 14 评论 -
JAVA-Final关键字
final的变量的值不能够被改变 final的成员变量 final的局部变量 class T{ final int i=8; //不可以再被改变(成员变量) public void m(final int j) { j=9; //这个会报错,只能用j的值,不可以修改j的值(局部变量) }} final的方法不能被重写 final的类不能...原创 2019-11-09 16:57:37 · 120 阅读 · 14 评论 -
JAVA-抽象类
用abstract关键字来修饰一个类时,这个类叫做抽象类:用abstract来修饰一个方法时,该方法叫做抽象方法 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写 抽象类不能被实例化 抽象方法只需声明,而不需实现public class Test{ public static void main(String args[]){ Animal...原创 2019-11-09 16:45:23 · 88 阅读 · 10 评论 -
JAVA动态绑定和多态
动态绑定是指“在执行期间(而非编译期)”判断所引用对象的实际类型,根据其实际的类型调用其相应的方法多态的条件:要有继承 要有重写 父类引用指向子类对象(里氏转换)里氏转换之后,对象只能用父类的方法,但是因为有了重写,就可以new谁,就用谁的方法(方法在code segment里面,不在堆里面)public class Test{ public static void m...原创 2019-11-09 16:41:00 · 192 阅读 · 10 评论 -
JAVA-对象转型(casting)
一个基类的引用类型变量可以“执行”其子类的对象 一个基类的引用不可以访问其子类对象新增加的成员(属性和方法) 可以使用引用变量instanceof类名来判断该引用型变量所“指向”的对象是否属于该类或该类的子类 子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之成为向下转型(downcasting)转型条件:要有继承关系下图解释(动物是猫和狗的父类)...原创 2019-11-09 16:28:40 · 468 阅读 · 3 评论 -
JAVA-equals方法
目录一、是Object类的一个方法二、Object的equals方法定义为:x.equals(y)当x和y是同一个对象的应用时返回true否则返回false三、J2SDK提供的一些类,如:String,Date等,重写了Object的equals方法,调用这些类的equals方法,x.equals(y),当x和y所引用的对象是同一类对象且属性内容相同时(并不一定时相同的对象),返...原创 2019-11-09 16:11:38 · 203 阅读 · 10 评论 -
java-toString方法
目录一、toStirng方法是Object类中的方法二、在进行String与其他类型数据的连接操作时,(如下图),将调用改对象类的toSting()方法三、可以根据需要在用户自定义类型中重写toString()方法一、toStirng方法是Object类中的方法定义为下图,其返回值为String类型,public String toString()二、在进行St...原创 2019-11-09 16:02:55 · 1415 阅读 · 15 评论 -
JAVA-package和import
package:为了便于管理大型软件系统中数目众多的类,解决类的命名冲突的问题(有相同名字的类)Java引入包(package)机制,提供类的多重类命名空间 import:引入package,使用package路径下的类如何使用:package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。第一步:准备好一个存放Cat类文件的文件夹,写好你要将Cat类文件放入的路径...原创 2019-11-09 12:03:46 · 332 阅读 · 6 评论 -
JAVA配置环境
目录准备工作:命令配置环境变量path与classpath环境变量Path环境变量classpath环境变量准备工作:jdk下载并安装(PS:最好安装在C盘,自己创建一个文件夹,不能存在有空格的文件夹下)命令cmd中,执行java命令与javac命令的区别:javac:是编译命令,将java源文件编译成.class字节码文件。例如:ja...原创 2019-11-05 20:53:35 · 260 阅读 · 17 评论 -
JAVA-内存解析
实例化的对象再堆内存,为什么位于堆内存? 答:因为堆内存是动态分配内存的,只有在运行当中,才会new一个对象放在堆内存当中,堆内存较大局部变量分配在什么地方? 答:再栈上 构造方法前面没有返回值,void也没有 方法调用结束之后,为方法分配的所有局部变量全部消失 方法开始执行,才开始分配内存空间 形参和局部变量相同,都占一块内存...原创 2019-10-03 09:33:24 · 80 阅读 · 1 评论 -
JAVA-内存解析图示
Test test=new Test();在栈建立一块空间,名字是test(局部变量),new之后再堆上面建立一块区域,方法开始执行才分配内存空间int data=9;BirthDate d1=new BirthDate(7,7,1970);brithdate类中有3个参数的构造函数方法调用结束之后,为方法分配的所有局部变量全部消失...原创 2019-10-02 21:28:15 · 296 阅读 · 0 评论