java
文章平均质量分 78
全栈Java笔记
这个作者很懒,什么都没留下…
展开
-
12.5-全栈Java笔记:Java网络编程(三)
上节回顾:在学习了Socket在建立客户端和服务器单项通讯中,分别创建独立的Socket,并通过Socket的属性。那么如何将两个Socket进行连接,从而达到客户端和服务器之间建立输入输出流进行通信呢?在上节中我们已经讲到,TCP/IP套接字是最可靠的双向流协议,使用TCP/IP可以发送任意数量的数据。如果发送方和接收方计算机确定好端口,他们就可以通信了,其中的端口用套接字表原创 2017-07-04 09:22:34 · 253 阅读 · 0 评论 -
5.2-全栈Java笔记:面向对象的特征(一)继承 | 下
上节我们聊到「Java面向对象的特征:继承」这节我们继续聊一下继承的应用。Object类Object类基本特性Object类是所有Java类的根基类,也就意味着所有的JAVA对象都拥有Object类的属性和方法。如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类。【示例1】Object类public class Perso原创 2017-06-26 10:20:38 · 411 阅读 · 0 评论 -
5.3-全栈Java笔记:面向对象特征(二)封装、多态
封装(encapsulation)封装的作用和含义我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要碰碰显像管吗?制造厂家为了方便我们使用电视,把复杂的内部细节全部封装起来,只给我们暴露简单的接口,比如:电源开关。具体怎么内部实现的,我们不需要操心。 需要让用户知道的暴露出来,不需要让用户了解的全部隐藏起来。这就是封装。 我们程序设计要原创 2017-06-27 09:19:41 · 532 阅读 · 0 评论 -
5.4-全栈Java笔记:面向对象进阶之对象的转型 | FINAL关键字 |抽象方法和抽象类
对象的转型(casting)引用变量只能调用它编译类型的方法,不能调用它运行类型的方法。这时,我们就需要进行类型的强制转换!【示例1】对象的转型public class TestCasting { public static void main(String[] args) { Object obj = new String原创 2017-06-27 11:00:03 · 669 阅读 · 0 评论 -
5.5-全栈Java笔记:接口的定义和使用
接口interface接口的作用为什么需要接口?接口和抽象类的区别?接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接口是完全面向规范的,规定了一批类具有的公共方法规范。从接口的实现者角度看,接口定义了可以向外部提供的原创 2017-06-27 11:02:26 · 731 阅读 · 0 评论 -
5.6-全栈Java笔记:内部类的四种实现方式
一般情况,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类(innerclasses)。内部类的作用1.内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问。2.内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员。 但外部类不能访问内部类的内部属性。内部类的使用场合由于内部类提供了更好原创 2017-06-27 11:06:32 · 1164 阅读 · 0 评论 -
5.7-全栈Java笔记:字符串String的常用方法
字符串StringString基础1)String位于java.lang包中,Java程序默认导入java.lang包。2)ava字符串就是Unicode字符序列,例如串“Java”就是4个Unicode字符J、a、v、a组成的。3)Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的一个原创 2017-06-27 11:18:21 · 589 阅读 · 0 评论 -
6.1-全栈Java笔记:异常处理机制的概念
异常问题实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了等等。 软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情况,或者叫原创 2017-06-27 11:35:21 · 194 阅读 · 0 评论 -
6.2-全栈Java笔记:异常处理机制的分类
异常分类JDK 中定义了很多异常类,这些类对应了各种各样可能出现的异常事件,所有异常对象都是派生于Throwable类的一个实例。如果内置的异常类不能够满足需要,还可以创建自己的异常类。 图1 异常的分类 ErrorError类层次描述了Java运行时系统内部错误和资源耗尽错误。这类错误是我们无法控制的,同时也是非常罕见的错误。所以在编程中,不去处理这类错误。E原创 2017-06-27 11:42:16 · 269 阅读 · 0 评论 -
5.1-全栈Java笔记:面向对象的特征(一)继承 | 上
JAVA面向对象进阶本章重点针对面向对象的三大特征:继承、封装、多态,进行详细的讲解。很多概念对于初学者来说,更多的是先进行语法性质的了解,不要期望,通过本章学习就“搞透面向对象”。本章只是面向对象的起点,后面所有的章节说白了都是面向对象这一章的应用。老鸟建议建议大家,学习本章,莫停留!学完以后,迅速开展后面的章节。可以说这么说,以后所有的编程都是“面向对象”的原创 2017-06-26 10:14:48 · 549 阅读 · 0 评论 -
4.8-全栈Java笔记:包机制
包机制是java中管理类的重要手段。 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。 包对于类,相当于,文件夹对于文件的作用。package我们通过package实现对类的管理,package的使用有两个要点:1.通常是类的第一句非注释性语句。2.包名:域名倒着写即可,再加上模块名,便于内部管理类。【示例1】package原创 2017-06-26 09:56:39 · 508 阅读 · 0 评论 -
4.7-全栈Java笔记:静态初始模块与参数传值机制
静态初始化块构造方法用于对象的初始化!静态初始化块,用于类的初始化操作!在静态初始化块中不能访问非static成员。静态初始化块执行顺序(学完继承再看这里):上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。构造方法执行顺序和上面顺序一样!! 【示例1】static初原创 2017-06-26 09:47:26 · 539 阅读 · 0 评论 -
12.6-全栈Java笔记:Java网络编程(四)
上节回顾:在学习了Socket建立客户端和服务器双向交流后,我们发现它的问答形式不够灵活。本节课我们讲解如何在服务器和客户端之间实现聊天室~需要思考的问题:服务器端:一个线程专门发送消息,一个线程专门接收消息。客户端:一个线程专门发送消息,一个线程专门接收消息。除了消化这段代码外,还需要思考,怎么实现一个聊天室!(难度较大!!)【示例1】聊天室服务器端原创 2017-07-04 09:23:57 · 189 阅读 · 0 评论 -
12.7-全栈Java笔记:Java网络编程(五)
UDP通讯的实现1.DatagramSocket:用于发送或接收数据包当服务器要向客户端发送数据时,需要在服务器端产生一个DatagramSocket对象,在客户端产生一个DatagramSocket对象。服务器端的DatagramSocket将DatagramPacket发送到网络上,然后被客户端的DatagramSocket接收。DatagramSocket有两种构造函数。原创 2017-07-04 09:25:25 · 303 阅读 · 0 评论 -
4.1-全栈Java笔记:对象的进化史
面向对象和面向过程的区别面向过程编程思想思考问题时,我们首先思考“怎么按步骤实现?”并将步骤对应成方法,一步一步,最终完成。 这个适合简单任务,不需要过多协作的情况下。比如,如何开车?我们很容易就列出实现步骤: 1. 发动车 2. 挂挡 3.踩油门 4. 走,你面向过程适合简单、不需要协作的事务。 如果,我们需要思考“如何造车?”,你就会发原创 2017-06-26 09:13:35 · 456 阅读 · 0 评论 -
4.2-全栈Java笔记:对象和类的概念及定义
对象和类的概念我们人认识世界,其实就是面向对象的。大家眼里都是一个个对象,要不怎么老说搞对象搞对象啊。比如现在让大家认识一下“天使”这个新事物,天使大家没见过吧,怎么样认识呢?最好的办法就是,给你们面前摆4个天使,带翅膀的美女,让大家看,看完以后,即使我不说,大家下一次是不是就都认识天使了。但是,看完10个天使后,我们总要总结一下,什么样的东东才算天使?天使是无数的,总有没见过的!原创 2017-06-26 09:17:28 · 557 阅读 · 0 评论 -
4.3-全栈Java笔记:面向对象的内存分析
面向对象的内存分析为了让大家对于面向对象编程有更深入的了解,我们要对程序的执行过程中,内存到底发生了什么变化,进行剖析,让大家做到“心中有数”,通过更加形象的方式理解程序的执行方式。老鸟建议: 本节是为了让初学者更深入了解程序底层执行情况,为了完整的体现内存分析流程,会有些新的名词,比如:线程、Class对象。大家暂时可以不求甚解的了解,后期学了这两个概念再回头来原创 2017-06-26 09:23:32 · 536 阅读 · 0 评论 -
4.4-全栈Java笔记:构造方法与构造方法的重载
构造方法构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。 声明格式:[修饰符] 类名(形参列表){ //n条语句}要点:1)通过new关原创 2017-06-26 09:30:06 · 531 阅读 · 0 评论 -
4.5-全栈Java笔记:垃圾回收机制
垃圾回收机制(Garbage Collection)Java引入了垃圾回收机制,令C++程序员最头疼的内存管理问题迎刃而解。JAVA程序员可以将更多的精力放到业务逻辑上而不是内存管理工作上,大大的提高了开发效率。垃圾回收原理和算法1)内存管理Java的内存管理很大程度指的就是对象的管理,其中包括对象空间的分配和释放。对象空间的分配:使用new关键字创建对象即可对象原创 2017-06-26 09:33:54 · 565 阅读 · 0 评论 -
4.6-全栈Java笔记:THIS关键字和STATIC关键字
this关键字对象创建的过程和this的本质构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不是完全由构造器负责创建的。创建一个对象分为如下四步:1. 分配对象空间,并将对象成员变量初始化为0或空2. 执行属性值的显示初始化3. 执行构造方法4. 返回对象的地址给相关的变量 this的本质就是“创原创 2017-06-26 09:40:23 · 356 阅读 · 0 评论 -
6.3-全栈Java笔记:异常处理方法(上)
异常的处理办法之一 捕获异常图1 异常处理 上面过程详细解析:1.try块:try语句指定了一段代码,该段代码就是一次捕获并处理的范围。在执行过程中,当任意一条语句产生异常时,就会跳过该段中后面的代码。代码中可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理。一个try语句必须带有至少一个catch语句块或一个fi原创 2017-06-27 13:37:52 · 290 阅读 · 0 评论 -
6.4-全栈Java笔记:异常处理办法(下)
自定义异常在程序中,可能会遇到任何标准异常类都没有充分的描述清楚的问题,这种情况下可以创建自己的异常类。从Exception类或者它的子类派生一个子类即可 。习惯上,定义的类应该包含2个构造器:一个是默认的构造器,另一个是带有详细信息的构造器。【示例1】自定义异常类class IllegalAgeException extends E原创 2017-06-27 13:42:30 · 316 阅读 · 0 评论 -
13.3-全栈Java笔记:打飞机游戏实战项目|PaintThread|launchFrame
多线程和内部类实现动画效果 1)增加绘制窗口的线程类 前三个版本,我们步步为营,每个小版本都有功能的突破。但是,目前为止我们的窗口仍然是静态的,并没有像真正的游戏窗口那样“各种动、各种炫”。本节我们结合多线程实现动画效果。 我们在MyGameFrame类中定义“重画窗口线程PaintThread类”,为了方便使用MyGameFrame类的属性和方法,我们将PaintThread定义成内部类。【原创 2017-07-31 14:51:58 · 1296 阅读 · 0 评论 -
13.4-全栈Java笔记:打飞机游戏实战项目|offScreenImage|GameObject|Plane
全栈Java笔记:打飞机游戏实战项目上节,我们实现了动画效果,但是发现窗口会不停的闪烁,体验度非常差。在实际开发中,绘制图形是非常复杂的,绘图可能需要几秒甚至更长时间,也经常发生闪烁现象, 为了解决这个问题,我们通常使用“双缓冲技术”。1)“双缓冲技术”的绘图过程原创 2017-08-01 14:50:06 · 1590 阅读 · 0 评论 -
14.1-全栈Java笔记: Java语言中GUI到底是神马鬼?| AWT | Swing
到目前为止,我们在Java中编写的基本都是基于控制台的程序;而Java编程语言之所以如此流行的一个主要原因之一,就是因为它支持图形用户界面功能,即GUI(Graphical User Interface)。GUI(Graphical User Interface)即图形用户界面,就是应用程序提供给我们用户操作的图形界面,包括窗口、菜单、工具栏及其它多种图形界面元素,如文本框、按钮、列表框、对话框等。原创 2017-08-09 14:44:48 · 578 阅读 · 0 评论 -
13.5-全栈Java笔记:打飞机游戏实战项目|KeyEvent|Plane|live
飞机类设计 飞机是我们游戏中的主物体,需要由玩家直接控制,手段有:键盘、鼠标、触摸屏等等。无论是什么硬件,本质上都是玩家通过硬件改变游戏物体的坐标,从而实现多种多样的效果。 本节中,我们重点使用键盘进行交互。大家学会了使用键盘操控游戏物体,通过鼠标或其他,我们只需要通过相关API的帮助即可轻松实现。键盘控制原理 键盘和程序交互时,每次按下键、松开键都会触发相应的键盘事件,事件的信息都封装到了K原创 2017-08-02 14:38:03 · 845 阅读 · 0 评论 -
13.6-全栈Java笔记:打飞机游戏实战项目|Shell|speed|launchFrame
炮弹类设计 通过炮弹类的设计,我们可以更深入了解构造器的用法以及容器的用法。同时,可能还需要读者稍微回忆一下初中数学曾学过的三角函数,这样更能理解炮弹飞行路径的计算原理。 当然,如果忘记这些知识了也没关系,毕竟在实际开发中很少涉及数学原理性的内容。炮弹类基本设计 炮弹类我们用实心的黄色椭圆实现,不再加载新的图片。当然,大家课下可以自行找一些炮弹图片亦可。 我们的逻辑是在窗口固定位置(200,2原创 2017-08-03 14:36:58 · 1455 阅读 · 0 评论 -
15.2-全栈Java笔记:ActionEvent事件类型可以实现哪些功能?
ActionEvent事件ActionEvent可能是使用得最多的事件类型,其对应的监听器是ActionListener接口,该监听器接口的实现类必须重写actionPerformed方法,当事件发生时就会调用该方法。这个方法的原型是:public void actionPerformed(ActionEvent e); 这个actionPerformed方法就是当事件发生时,由系统自动调用的方法原创 2017-08-17 15:43:37 · 2464 阅读 · 0 评论 -
13.7-全栈Java笔记:打飞机游戏实战项目|Rectangle|intersects|Plane
碰撞类检测技术 游戏中,碰撞是遇到最频繁的技术。当然,很多游戏引擎内部已经做了碰撞检测处理,我们只需调用即可。本节课是从碰撞的原理进行讲解,大家自己去实现基本的碰撞检测。矩形检测原理 游戏中,多个元素是否碰到一起,实际上,通常是用“矩形检测”原理实现的。 我们在前面提到,游戏中所有的物体都可以抽象成“矩形”,我们只需判断两个矩形是否相交即可。对于一些复杂的多边形、不规则物体,实际上是将他分解成多原创 2017-08-04 14:22:33 · 1700 阅读 · 1 评论 -
13.1-全栈Java笔记:打飞机游戏实战项目|AWT|MyGameFrame
重点内容简介和项目目标 通过游戏项目学习整个Java基础知识体系,我们做了精心的设计,让每一章知识都能获得应用。 比如:多线程用来实现动画效果、容器实现对于多发炮弹的存取和处理、常用类等等的应用。 寓教于乐,让大家迅速入门,更希望通过喜闻乐见的小游戏,让大家爱上编程,爱上“程序员”。老鸟建议 很多朋友会疑惑:“游戏项目,又不能拿到企业面试中,为什么要讲?” 这是一种太过于功利的想法。就像,原创 2017-07-27 15:37:27 · 1267 阅读 · 0 评论 -
9.1-全栈Java笔记: 容器&泛型—认识Collection接口
开发和学习中需要时刻和数据打交道,如果组织这些数据是我们编程中重要的内容。 我们一般通过“容器”来容纳和管理数据。 事实上,数组就是一种容器,可以在其中放置对象或基本类型数据。数组的优势:是一种简单的线性序列,可以快速的访问数组元素,效率高。如果从效率和类型检查的角度讲,数组是最好的。数组的劣势:不灵活:容量事先定义好,不能随着需求的变化而扩容。比如:我原创 2017-06-28 11:38:10 · 310 阅读 · 0 评论 -
8.6-全栈Java笔记:Math类和枚举
Math类java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。如果需要更加强大的数学运算能力,计算高等数学中的相关内容,可以使用apache commons下面的Math类库。 常用方法: abs 绝对值 acos,asin,atan,cos,sin,tan sqrt 平方根 pow(dou原创 2017-06-28 11:37:16 · 270 阅读 · 0 评论 -
8.5-全栈Java笔记:File类基本用法
File类 File类的基本用法java.io.File类:代表文件和目录。 在开发中,读取文件、生成文件、修改文件时经常会用到本类。 File类的常见构造方法:public File(String pathname)以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。原创 2017-06-28 11:33:09 · 216 阅读 · 0 评论 -
7.1-全栈Java笔记:数组的概念和初始化
数组概述和特点数组的定义:数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个下标来访问它们。数组的三个基本特点:1.长度是确定的。数组一旦被创建,它的大小就是不可以改变的。2. 其元素必须是相同类型,不允许出现混合类型。3. 数组类型可以是任何数据类型,包括基本类型和引用类型原创 2017-06-27 13:44:05 · 281 阅读 · 0 评论 -
7.2-全栈Java笔记:数组常见的操作
数组常见操作数组的遍历数组元素下标的合法区间:[0, length-1]。我们可以通过下标来遍历数组中的元素,遍历时可以读取元素的值或者修改元素的值。【示例1】 使用循环遍历初始化和读取数组public class Test { public static void main(String[] args) {原创 2017-06-28 11:05:39 · 282 阅读 · 0 评论 -
7.3-全栈Java笔记:多维数组的应用及数组存储表格数据
多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。最多到二维数组(学习容器后,我们一般使用容器,二维数组用的都很少)。 【示例1】二维数组的声明public class Test{ public static void main(String[] args) { //Java中多维数组的原创 2017-06-28 11:13:12 · 397 阅读 · 0 评论 -
7.4-全栈Java笔记:三种经典算法
冒泡排序算法冒泡排序是最常用的排序算法,在笔试中也非常常见,能手写出冒泡排序算法可以说是基本的素养。算法重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,这样越大的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从原创 2017-06-28 11:17:10 · 391 阅读 · 0 评论 -
8.1-全栈Java笔记:基本数据类型的包装类
基本数据类型的包装类包装类基本知识Java是面向对象的语言,但不是“纯面向对象”,基本数据类型就不是对象。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。 比如:Object[]数组、集合的操作中。为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。原创 2017-06-28 11:20:48 · 304 阅读 · 0 评论 -
8.2-全栈Java笔记:字符串相关类(String/StringBuilder /StringBuffer)
字符串相关类(String/StringBuilder /StringBuffer)String类String 类对象代表不可变的Unicode字符序列。 什么叫做“不可变的对象”?指的是对象内部的成员变量的值无法再改变。我们打开String类的源码:我们发现字符串内容全部存储到value[]数组中,而且是final类型,也就是常量(即只能被赋值一次原创 2017-06-28 11:24:42 · 378 阅读 · 0 评论 -
8.3-全栈Java笔记:时间处理相关类(上)
时间处理相关类“时间如流水,一去不复返”,时间是一个一维的东东。所以,我们需要一把刻度尺来区表达和度量时间。在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一)。我们用long类型的变量来表示时间,从基准时间往前几亿年,往后几亿年都能表示。如果想获得现在时刻的“时刻数值”,可以使用: lo原创 2017-06-28 11:28:22 · 380 阅读 · 0 评论
分享