自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 问答 (1)
  • 收藏
  • 关注

原创 网络七层协议

一、OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 7应用层6表示层5 会话层 4传输层3 网络层 2数据链路层1物理层;其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流。二、各层的功能物理层:网卡,网...

2019-03-13 17:08:42 330

原创 CS架构和BS架构的区别

Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。一、硬件环境不同1、C/S一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。2、B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网, 租用设备. 信息管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器...

2019-03-09 16:45:13 8446

原创 JSON详解

一、JSON定义1、JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScr...

2019-03-09 10:06:37 273 2

原创 java中的异常

Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。Throwable的两个子类Error和Exception异常:1.编译时不被检测异常:Error和RuntimeException这种异常...

2019-03-07 17:04:34 200

原创 java线程详解

一、基本概念1、进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。2、线程是指进程中的一个执行流程,一个进程可以运行多个线程。比如java.exe进程可以运行很多线程。线程总是属于某个进程,线程没有自己的虚拟地址空间,与进程内的其它线程一起共享分配给该进程的所有资源。3、线程“同时”执...

2019-03-07 16:57:16 573 1

原创 java的IO流

一、基本概念应用程序和设备(比如屏幕、键盘、硬盘、U盘、内存、文件等)间经常需要传输数据,内存是临时存储,数据一般储存在设备上,Java为了简化开发流程,将这种数据传输封装成流的概念,屏蔽硬件细节。流有两种:字节流和字符流。字节流:就是把传输的数据看成是没有特定含义的二进制数据。字符流:把数据看成是字符(针对文本,会用到内存)。二、IO流类图三、字节流字...

2019-03-05 15:13:24 294

原创 java集合的详解

一、集合的由来?通常,我们的程序需要根据程序运行时才知道创建多少个对象。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了数组,但是数组只能放统一类型的数据,而且其长度是固定的,那怎么办呢?集合便应运而生了!二、什么是集合?1...

2019-03-04 14:11:17 196

原创 java数组和集合的区别

数组和集合都是java中的容器。1、数组声明了它容纳的元素的类型,而集合不声明。2、数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了,而且生命周期也是不能改变的,还有数组会做边界检查,如果发现有越界现象,会报RuntimeException异常错误,当然检查边界会以效率为代价。而集合的长度是可变的,可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,...

2019-02-26 17:04:43 1256

原创 java常用类

1、String字符串类字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。用代码定义一个字符串:String str1 = "Hello World";//第一种方法String str2 = new String("Hello World");//第二种方法这两种都可以创建字符串。字符串可以通过“+”...

2019-02-26 15:31:39 337

原创 String,StringBuffer与StringBuilder的区别

1、String字符串常量字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。public static void main(String[] args) { St...

2019-02-22 15:02:58 160

原创 五子棋小游戏的分析和设计

1、系统分析面向对象分析方法,站在用户的角度回答两个问题:(1)系统中应该有什么对象?a.棋盘b.棋局:多个棋子构成的某一时刻的状态c.游戏:系统总控对象,接收用户的操作指令,并按照用户的操作指令控制棋盘和棋局。(2)每个对象都应该有什么属性和方法? 棋盘 属性 rows 行数 ...

2019-02-22 09:58:41 3512

原创 java中泛型的定义和使用

在之前的堆栈中,我们只能存储int数据,如果需要存储float数据,就必须再定义一个堆栈。我们发现代码基本上是一样的,只是将其中的部分int改成了float,但是我们不得不重新写一遍。如果以后还要存储double、String……等类型数据怎么办?有没有一劳永逸的办法只写一遍呢?——泛型。public class FloatStack { private float []data;...

2019-02-22 09:49:12 1658

原创 java中的接口

为什么使用接口?如果各个形状类自行其是,比如三角形面积返回值类型是float,矩形返回double,而圆形的方法名使用拼音。那么对于使用者必然造成困扰——太乱了!而使用接口就起到了统一规划的目的,他的实现者(继承者)必须要实现它规划好的方法,不能更改。这样就增加了类的一致性,便于使用和维护。 什么是接口:当一个抽象类中的所有方法都是抽象方法,那么我们就可以把它定义为一个接口,接...

2019-02-22 09:33:45 117

原创 java中的抽象类

为什么需要使用抽象类?比如说:形状肯定有计算周长和面积的方法,但是具体如何计算的,却无法描述,三角形有三角形计算的方法,圆有圆计算的方法。所以在形状这个类里只能声明这个方法,但是不能实现。 抽象类语法:abstract class 类名{属性方法}抽象方法语法:public abstract [返回值] [void] 方法名 (参数列表);没有方法体。如果一...

2019-02-21 16:04:18 154

原创 java中面向对象三大特征之一多态

不同的对象,接受到相同的消息,产生的响应不同就是多态。多态的前提:    必须是类与类之间有关系。要么继承,要么实现。    通常还有一个前提:存在覆盖。 多态的好处:1.可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。2.可扩充性(extensibility)。多态...

2019-02-21 16:01:02 170

原创 java中面向对象三大特征之一类的继承

语法:Class 子类extends 父类{子类的属性子类的方法} 继承的特点:1..允许子类直接使用父类的所有属性和行为。2.子类使用extends关键字继承父类的共同属性以外,子类还可以有自己特有的属性或方法3.父类更通用,子类更具体。4.子类只能获得父类中的非private的属性,如果想要继承就得提供公共的set和get的方法,私有的方法是无法继承下来...

2019-02-21 15:51:28 183

原创 java中对继承的理解

什么是继承?继承就是可以直接使用前辈的属性和方法。为什么需要继承?自然界中如果没有继承,那一切都是出于混沌状态。在软件开发中,我们可以借鉴自然界的机制,已经有的东西我们希望能够直接拿来用(复用)而不用重复做。案例:定义人和员工类定义人public class Person { private String id;//身份证号码 private String...

2019-02-21 15:40:41 322

原创 java的内部类

内部类是指在一个类的内部定义的类。内部类可以自由访问外部类的所有成员。注意:内部类不能被直接创建。 内部类可以作为成员类(在外部类中定义,和成员方法平行)和方法内部类(定义在外部类的成员方法里面)。创建内部类的语法:外部类.内部类 变量名 = new 外部类对象.new内部类对象内部类的外部类的方法如果想要访问内部类的方法,必须创建内部类的对象,根据内部类的对象来访问...

2019-02-21 15:30:13 139

原创 java的final关键字

修饰在属性上:语法:权限修饰符  [static]  final  数据类型  属性名 = 值属性名一般采用大写,多个单词使用下划线来分割,而且这种常量多定义在接口中用final来修饰变量的时候不能被修改(也就是常量) 修饰在方法上:语法:权限修饰符  final  返回值类型  方法名 (参数列表){                 方法体}用final来修饰...

2019-02-21 15:25:18 134

原创 java的static静态

静态成员修饰的成员与一般的成员有何区别呢?一般的成员是每个对象有一份数据,而静态成员是属于类的,即所有对象所共享;一般成员的访问方式:对象名.成员名,而静态成员的访问方式:类名.成员名。一般成员都是通过构造函数去完成初始化(实例化对象时),而静态成员则是在加载类的时候(也就是实例化之前)初始化 静态方法没有this,为什么?因为静态方法面向的是整个类,不是某个对象,所以没有...

2019-02-21 15:22:49 170

原创 java类的访问权限控制和封装

类存在一个边界,边界之内的细节隐藏起来,只留下对外的接口(如:笔记本、手机、饮水机)为什么使用封装:(1)易用,简单(2)提高数据安全性(3)实现对属性的访问权限控制,增加程序的易维护性。 面向对象封装的体现:四种权限的访问修饰符对实体的修饰   private 默认 protected ...

2019-02-21 15:16:36 828

原创 java的this关键字

打印一个对象,输出的是这个对象的地址(jdk提供的一个地址)this代表当前类的指定实例的引用this只能在类的对象方法中使用this代表当前调用这个this 所在的方法的对象的自身this调用本类里面的属性和方法,this.属性名,this.方法()通过this可以调用同类中的构造器(this(),this(参数列表))this可以在方法内区分同名的类的属性和参数名 ,有...

2019-02-21 14:54:45 126

原创 java构造函数和垃圾回收

为什么需要有构造函数?构造函数是完成对象的初始化,这个当然可以定义一个成员方法予以实现。但是这个方法必须显式调用,否则就可能因未初始化出现错误。我们希望这样的方法在对象实例化时能够被系统自动调用,那么它的名字一定是独一无二的,什么样的名字才是独一无二的呢?——以类名作为方法名。这就是构造函数。构造函数不需要程序员去定义返回值,他是系统自动决定的,void也不行,并且参数可有可无注意...

2019-02-21 14:50:51 218

原创 哈希码

在Java中,哈希码代表了对象的一种特征,例如我们判断某两个字符串是否==,如果其哈希码相等,则这两个字符串是相等的。其次,哈希码是一种数据结构的算法。常见的哈希码的算法有:1、Object类的hashCode,返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样。2、String类的hashCode,根据String类包含的字符串的内容,根据一种特殊算法返回哈希...

2019-02-12 16:49:29 450

原创 java中对象的引用

引用:一个储存了某个对象地址的变量,它储存的不是对象本身,而是对象的地址。Point point = new Point();的含义是:首先实例化一个对象(new Point()),然后定义一个引用point指向这个实例。point=point1不是将实例point1赋值给point,而只是改变了引用的关系,即point也指向了point1指向的实例赋值兼容:凡是可以需要用到父...

2019-02-12 16:45:18 208

原创 java类中局部变量和成员变量的区别

局部变量:在方法中或者在语句块中 局部变量必须赋初始值才能用 都存储在栈中 生命周期:定义的时候产生,当前的方法的括号,语句块的括号执行完毕就会消失成员变量(属性):语法:数据类型  属性名(=初始值);属性可以没有初始值在类里面定义 可以不赋值,如果不赋值都有默认值 存储在堆中 生命周期:随着对象的消失而消失,会被jvm的垃圾回收器来回收掉...

2019-02-12 16:36:45 1504

原创 类和对象的定义与使用

类:一组具有相同属性和行为的对象的抽象。类的语法class 类名{属性行为}类名和文件名要一致,首字母要大写,如果类名是多个单词构成,那么每一个单词首字母都大写 根据类来创建对象语法:类名(数据类型) 变量名 = new 类名(); 给对象赋值属性语法:对象的变量.属性 = 具体值; 类的对象的方法的调用:语法对象的变量名字.方法...

2019-02-12 16:35:29 399

原创 面向对象的概念,基本特征以及设计方法

1、面向对象基本概念对象:万物皆对象,对象是由静态的属性和动态的方法组成。类:一组具有相同属性和行为对象的抽象事物。消息:向某个对象发送请求。(如:手机来电)方法:对象对收到请求的响应。(如:手机收到来电会震动提示)2、面向对象的基本特征抽象:从一个具体的对象中提取提取一组数据,去除非本质和特性的属性,保留本质的、共性的。比如学生,有很多的属性(学号、姓名、性别、身高、...

2019-02-12 16:23:13 1432

原创 面向编程和面向对象的区别

面向过程:站在程序员的角度,按照“自顶而下,逐步求精”的模块化思想去解决问题,适合解决小规模的问题,在解决问题中,注意的是解决问题的每一个步骤和过程。面向对象:按照“由下而上”的思想,站在用户的角度先考虑系统由什么物体(对象)组成,对象之间如何交互的,它比较适合大规模的问题,注重的是在问题中涉及到的对象,以及对象之间的关系。   核心思想 ...

2019-02-12 16:14:51 269

原创 java中常见的数组查找和数组排序

常见的查找方法:第一种顺序查找:也就是按顺序一位一位的查找,找到要查找数的索引(下标)。弊端:数据量大的时候,在最差的情况下,计算机的负载也非常的大,效率低。public static void main(String[] args) { System.out.println("请输入要查找的数"); Scanner scanner = new Scanner(Sys...

2018-07-26 22:58:00 1273

原创 java中数组的遍历

数组的遍历:访问到数组中的每一个元素,并且可以对每一个元素进行一系列的操作。数组的遍历:方法一: //a.length是数组的长度 for (int i = 0;i<a.length;i++){ System.out.println(a[i]+" "); }}方法二:foreach遍历//i指的是变量名,a指数组for (int i ...

2018-07-26 22:04:52 946

原创 java中数组的定义和使用

数组的本质:一串连续的的内存空间。数组的第一种定义语法:数据类型[] 数组名 = new 数据类型[整数];整数:数组的长度我们通过数组的变量名(数组的整地址)加上数组的下标或者索引可以对数组的每一个值进行操作获得数组的长度使用数组的属性lenth例如:public static void main(String[] args) { //定义一个5个长度整数类...

2018-07-26 18:05:15 325

原创 java中函数的定义和使用

什么是函数?函数是一段可以完成某个独立功能的代码,我们只需要写一次,就可以被多次调用,提高了代码的复用性。为什么需要函数呢?将大的、复杂的问题分解为若干个小的、简单的问题去求解,能有有效地帮助我们轻松解决复杂问题。函数设计三要素:(1)函数名:见名思议,也就是根据功能定名字,按照驼峰写法xxxYyyZzz(2)参数:调用者传递过来的数据的接收方式,参数可以有多个,也可以没有...

2018-07-22 22:28:10 18515

原创 java中while循环、do....while循环、for循环三者的区别以及用法

循环:就是重复发生的过程(循环一般有重复的前提条件)循环问题的共同点:都有一个初始化状态 都有一个循环的判断条件 都有反复要做的事 都需要为下一次的循环做准备写循环前回答四个问题(1)初始状态由哪些变量描述,其初值是什么?(2)循环的控制条件是什么?(题目中给出的条件往往是反的)(3)反复做什么(4)怎么过渡到下一次 while循环语法:while(表达式)...

2018-07-18 21:57:13 6646

原创 java中为什么需要程序调试以及在IntelliJ IDEA中如何正确的进行调试

为什么需要调试?应为程序出现问题的概率很高,甚至几乎是肯定的,那么排除错误的能力对于程序员而言就至关重要了。在实际项目中,调试时间往往多于开发时间。而且,调试工具也是一个非常好的学习工具,能让我们更好的观察运行过程和中间结果,这对于初学者理解一些抽象的概念是非常有好处的。3.1 错误类型(1)语法错误所谓语法错误,指的是代码不符合语法规定。编译器会提示相应的错误,根据错误提示修...

2018-07-17 21:54:08 521

原创 break,continue,return三者的区别

break:跳出当前循环,但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环;continue:跳出本次循环,开始下一次循环。return:跳出整个函数体,函数体后面的部分不再执行例如:public static void main (String[] args) { int j = 3;for (int i = 0; i < 5; i++) {if (...

2018-07-12 23:05:06 254

原创 java选择结构的if,else和switch的用法

为什么会有选择结构?编程中会遇到不同情况的条件,就要运用到选着结构。简单if的语法:if(条件判断表达式){         执行语句}例如://实现程序如果分数大于60分就及格int score = 67;if (score >= 60){ System.out.println("恭喜你及格了");} System.out.println(...

2018-07-12 22:45:31 434

原创 数据类型的转换

8种基本数据类型除了boolean类型以外都能转换1.自动转换变量在做计算的时候,可能会出现溢出的情况,那么java语言采用自动类型转换的方式来处理。 小的空间的数据类型和大空间的数据类型的数计算会向大的空间的数据类型转换byte、short、char在计算的时候会自动的提升数据类型成为int例如:byte a = 12;byte b = a + 1;//会报可能损...

2018-07-12 12:21:13 245

原创 java运算符

1.算数运算符假设整数变量 a = 20, b = 10运算符说明举例+加法a+b等于30-减法a-b等于10*乘法a*b等于200/除法a/b等于2%取余a%b等于0++自增a++或++a等于21--自减a--或--a等于19除法有两种:一般除法和整除,如果除数和被除数都为整型,则执行的是整除,否则执行另一种除法。求余可以用于判断奇偶、判别因子、控制数据的周期变化。(如:时钟60s,周期s =(...

2018-07-10 22:46:55 259

原创 java八大基本数据类型

为什么需要有数据类型?生活中的数据本来就是有类型的,只不过我们没有在意或者去深入研究。那么计算机语言就是去告诉计算机如何去解决现实问题,当然需要对等的概念去描述数据。数据类型有啥作用?(1)决定了每个数据存储时所需要的字节数,字节有8个二进制的0或1构成。(2)决定了数据所能执行的运算。八大基本数据类型包括:整数类型(byte,short,int,long),浮点类型(floa...

2018-07-06 17:34:25 9183 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除