自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java之路:如何在容器中添加一组元素

(1)Array.asList()方法接受一个数组或是一个用逗号分隔的元素列表(使用可变列表),并将其转换为一个List对象。(2)Collections.addAll()方法接受一个Collection对象,以及一个数组或是一个用逗号分隔的列表,将元素添加到Collction中。注:Collection的构造器可以接受另一个Collection,用它来初始化自身。(3)Collec...

2018-12-21 19:16:51 949 2

原创 Java之路:Iterator与ListIterator

迭代器(也是一种设计模式)是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或关心该序列底层的结构。此外,迭代器也被称为轻量级对象,创建它的代价小。一、IteratorJava中,Iterator只能单身移动,这个Iterator只能用来:(1)使用方法iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的第一个元素。List<In...

2018-12-21 18:57:30 271

原创 Java之路:常用的List、Set和Map的特性

一、ListArrayList和LinkedList都是List类型,它们都按照元素被插入的顺序保存元素。1、基本的ArrayListArrayList擅长随机访问元素,但是在List的中间插入和移除元素时较慢。2、LinkedListLinkedList通过较低的代价在List中间进行插入和删除操作,提供了优化的顺序访问。LinkedList在随机访问方面相对比较慢,但是它所包含的操作...

2018-12-21 18:34:21 285

原创 Java之路:在子类中覆盖基类私有方法

// Override a private methodpublic class PrivateOverride { private void f() { System.out.print("private f()"); } public static void main(String[] args) { PrivateOverride po...

2018-12-21 10:55:51 420

转载 Java之路:对象创建时的实际过程

假设有个名为Dog的类:即使没有显示地使用static关键字,构造器实际上也是静态方法。因此,当首次创建类型为Dog的对象时(构造器可以看成静态方法),或者Dog类的静态方法/静态域首次被访问时,Java解释器必须查找类路径,以定位Dog.class文件。然后载入Dog.class,有关静态初始化的所有动作都会执行。因此,静态初始化只在Class对象首次加载的时候进行了一次。当用new D...

2018-12-16 20:50:20 219

原创 int i;;合法吗?

int i;;int n;;;;;;;;;;;;;上面两条语句合法吗?答案是合法,事实上,由于多个Java语句可以处于同一行,那么int i ;;就可以解读为“int i;”这条语句和另外一个空语句“;”共处于一行之上。int i语句后面即使跟10个分号也合法。...

2018-12-15 09:50:50 1714

原创 Java之路:运算符

一、赋值运算符:=它的意思是“取右值,把它复制给左值”。右值可以是任何常数、变量或表达式(只要它能生成一个值就行)。但左值必须是一个明确的、已命名的变量,即必须有一个物理空间可以存储等号右边的值。如下:int a;a = 4; // 可以将常量赋给变量//以下是错误4 = a; // 不能把任何东西赋给一个常数1、对于基本数据类型,赋值运算符是很简单的,基本类型存储了实际的值...

2018-12-15 09:50:29 278

原创 Java之路:变量作用域

变量作用域变量是有作用范围(Scope)的,也即作用域。一旦超出变量的作用域,就无法再使用这个变量。按作用域范围划分,变量分为成员变量和局部变量。(1)成员变量在类体内定义的变量称为成员变量,它的作用域是整个类,也就是说在这个类中都可以访问到定义的这个成员变量。【例】public class Demo { static int i = 47; // 定义一个成员变量,作用域是...

2018-12-15 09:50:01 10788 1

原创 Java之路:数组

数组1、定义数组,顾名思义,即是一组数据,是有序数据的集合,数组中的每个元素必须是相同的数据类型,可以用统一的数组名和下标来唯一地确定数组中的元素。从本质上说,它是存储数据的一个容器。在Java中,数组也可以视为一种数据类型,它本身是一种引用类型。引用类型(reference type),引用类型的变量非常类似于C/C++的指针。而指针变量放到Java中便是引用类型变量。数据类型...

2018-12-15 09:49:34 139

原创 Java之路:this关键字的用法

(1)普通方法中,this总是指向调用该方法的对象。(2)构造方法中,this总是指向正要初始化的对象。(3)this可以让类中的一个方法,访问该类的另一个方法或属性。(4)可以使用this关键字调用重载构造方法。避免相同的初始化代码,只能在构造方法中用,并且必须位于构造方法的第一句。(5)this不能用于static方法。用this调用构造方法package this_const...

2018-12-15 09:42:22 46987 2

原创 Java之路:你真的了解final吗?

finalfinal在Java之中称为终结器,final关键字可以修饰类、成员变量和方法中的局部变量。如果成员变量或局部变量被修饰为final的,就是常量。1、final修饰类使用关键字final修饰的类称为final类,该类不能被继承,有时为了程序的安全性,可以将一些重要的类声明为final类。2、final修饰成员变量成员变量是随着类初始化而初始化的。当类初始化时,系统会为...

2018-12-15 09:41:30 2344 2

原创 Java之路:接口

接口接口(interface)是Java所提供的另一种重要技术,是一种特殊的类,它的结构和抽象类非常相似,也具有数据成员与抽象方法,但它与抽象类又有不同,并且Java 8中又添加了新特性。1、接口的定义与使用(1)接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误)。接口里的数据成员...

2018-12-14 08:38:56 446

原创 Java之路:类与对象

一、类将具有相同属性及相同行为的一组对象称为类(class)。广义地讲,具有共同性质的事物的集合就称为类。在面向对象程序设计中,类是一个独立的单位,它有一个类名,其内部包括成员变量,用于描述对象的属性;还包括类的成员方法,用于描述对象的行为。在Java程序设计中,类被认为是一种抽象的数据类型,这种数据类型不但包括数据,还包括方法,这大大地扩充了数据类型的概念。类是一个抽象的概念,要...

2018-12-14 08:38:33 231 1

原创 Java之路:面向对象与面向过程

一、结构化程序设计早期的程序设计,大量使用共享变量(全局变量)和goto语句,这使得代码结构比较混乱,不容易改错和复用。后来有人证明所有的有意义的程序流程都可以使用顺序、选择和循环来实现,并由此提出结构化程序设计。它的主要观点是采用自顶向下、逐步求精及模块化的程序设计方法,使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环这三种基本控制结构来构造。结构化程序设计主要强调的是程序...

2018-12-14 08:38:08 558

原创 Java之路:常量与变量

常量(Constant)1、常量定义所谓常量,就是固定不变的量,其一旦被定义并初始化,它的值就不能再改变。2、常量声明在Java语言中,常用关键字final声明常量,语法如下:// 方法1,推荐使用final 数据类型 常量名 = 常量值;// 方法2final 数据类型 常量名;常量名 = 常量值;注意(1)常量名和标识符的命名规则一样,可由任意顺序的大小写字母、数...

2018-12-14 08:37:36 195

原创 Java之路:基本数据类型

在Java中,数据类型一共分为两大类:基本数据类型、引用数据类型。基本数据类型由Java语言定义,不可以再进行划分。基本数据类型的数据占用内存的大小固定,在内存中存入的是数值本身,而引用数据类型在内存中存入的是引用数据的存放地址,并不是数据本身。基本数据类型是一个单纯的数据类型,它表示的是一个具体数字、字符或逻辑值。在Java中规定了8种基本数据类型来存储整数、浮点数、字符和布尔值...

2018-12-14 08:37:13 371

原创 Java之路:break、continue与return的区别

1、不带标签breakpublic class BCR { public static void main(String[] args) { int i, j; for(i = 1; i < 10; i++) { for(j = 1; j < 10; j++) { if(j%3 == 0) break; // 跳出内层循环 System.ou...

2018-12-14 08:36:37 164

原创 Java之路:==与equals()的区别

关系运算符 ==【示例1】public class Equal { public static void main(String[] args) { int m = 3; int n = 3; Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(m == n); ...

2018-12-14 08:36:01 180

原创 Java之路:截尾、舍入与提升

截尾和舍入在执行窄化转换时,必须注意截尾与舍入的问题。例如:如果将一个浮点数转换为整型值,Java会如何处理呢?如果将29.7转换为int,结果是30还是29?public class Cast { public static void main(String[] args) { float f = 29.7f; double d = 200.13213; int i = (in...

2018-12-14 08:34:56 502

原创 Java之路:基本数据类型的转换

基本数据类型的转换1、自动类型转换也称隐式转换,扩展转换,将范围小的数据类型赋值给范围大的数据类型,编译器会自动进行转换。例如:byte b = 20;int a = b; // 将byte类型赋值给int类型,编译器会自动将byte类型转化为Int类型自动转换条件(1)转换前后的数据类型要相互兼容。(2)转换后的数据类型的表示范围大于转换前的类型。即扩大转换。注...

2018-12-14 08:34:12 195

原创 Java之路:关键字和保留字

关键字与保留字1、定义关键字(keywards)是编程语言里事先定义好并赋予了特殊含义的单词,在语言中有特殊的含义成为语法的一部分。且Java中所有关键字均是小写。保留字(reserved words)即它们在Java现有版本中没有特殊含义,以后版本可能会作为有特殊含义的词,或者该词虽然在Java中没有特殊含义,以后版本也不打算使用,但在其它语言中有特殊含义,不宜在Java中定义为变量...

2018-12-14 08:33:40 869

原创 Java之路:标识符命名规则与规范

标识符1、定义在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如包名、类名、方法名、变量名等,这些符号被称为标识符。2、标识符命名规则命名规则标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但不能以数字开头,不能是Java中的关键字。注:标识符的命名规则是属于强制性的,不然编译会报错。命名规范(1)包名所有字母一律小写。例如:c...

2018-12-13 12:20:38 640

原创 怎么用命令行运行.java文件

第一步假如在e盘里有个文件夹名为Java,在Java文件夹里有一个事先写好的.java程序,如下:第二步打开命令行窗口(Window+R),输入cmd,点确定,如下:第三步转到HelloWorld.java文件所在的文件夹。(1)文件在E盘,首先输入 e: 回车。(2)输入cd Java 进入Java文件夹。(3)输入javac HelloWorld.java 然后回车...

2018-12-13 12:07:57 11507 2

原创 Java之路:管道流

在UNIX/Linux中有一个很有用的概念——管道(pipe),它具有将一个程序的输出当作另一个程序的输入的能力。在Java中,它的 I/O系统建立在数据流概念之上,也可以使用“管道”流进行线程之间的通信,在这个机制中,输入流和输出流必须相连接,这样的通信有别于一般的共享数据(Shared Data)缓冲区通信,其不需要一个共享的数据空间。管道流主要用于连接两个线程间的通信。管道流也分为字节...

2018-12-13 10:05:57 6961

原创 Java之路:内存操作流

Java提供了内存流机制,可以实现类似于内存虚拟文件的功能。这样,我们既可以从内存中获取数据,也向内存中写入数据,也就是说,可以将内存作为数据的来源和目的地。内存操作流就是实现向内存中读取和写入数据的流类。内存操作流一共也分为两组:(1)字节内存操作流:ByteArrayOutputStream、ByteArrayInputStream;(2)字符内存操作流:CharArrayWrit...

2018-12-13 10:03:53 538

原创 Java之路:打印流

如果我们要想进行数据的输出,首先想到的就是要使用OutputStream类,但这个类在进行输出数据的时候并不是十分方便。OutputStream类之中所提供的write()方法只适合输出字节数组,但如果要求输出字符、数字、日期,OutputStream类就不能很方便地胜任工作了。在Java的I/O包中,打印流是一个输出信息最方便的流类,它可以将原样输出各种类型的类型。除了输出数据,打印...

2018-12-13 10:03:29 157

原创 Java之路:合并(序列)流

SequenceInputStream类可以将多个输入流按顺序连接起来。SequenceInputStream的构造方法是使用一对输入流或者一个输入流的枚举(内含多个输入流)作为参数。//将输入流s1和s2合并SequenceInputStream(InputStream s1,InputStream s2) // 该类从枚举流streamEnum中,在对第一个流完成读请求后,转到第二个...

2018-12-13 10:03:07 272

原创 Java之路:System类对I/O的支持

为了支持标准输入输出设备,Java定义了3个特殊的流对象常量:错误输出:public static final PrintStream err;系统输出:public static final PrintStream out;系统输入:public static final InputStream in。(1)System.in通常对应键盘,属于InputStream类型,程序使用Sy...

2018-12-13 10:02:41 180

原创 Java之路:字符编码

计算机里只有数字,计算机软件里的一切都是用数字来表示,屏幕上显示的一个个字符也不例外。最开始计算机是在美国使用,当时所用到的字符也就是现在键盘上的一些符号和少数几个特殊的符号,每一个字符都用一个数字来表示,一个字节所能表示的数字范围内(0~255)足以容纳所有的字符,实际上表示这些字符的数字的字节最高位(bit)都为0,也就是说这些数字都在0~127之间,如字符a对应数字97,字符b对应数字...

2018-12-13 10:02:10 141

原创 Java之路:对象序列化

一、对象序列化的基本概念所谓的对象序列化(在某些书籍中也叫串行化),是指在内存之中保存的对象转化为二进制数据流的形式的一种操作。通过将对象序列化,可以方便地实现对象的传输及保存。但是在Java之中并不是所有的类的对象都可以被序列化,如果一个类对象需要被序列化,则此类一定要实现java. io.Serializable接口。但是这个接口里面也没有定义任何的方法,所以此接口依然属于标识接口,...

2018-12-13 10:01:29 194

原创 Java之路:Java 8中关于流的新功能

在Java 8 中的Java.io包和java.nio包中增添了一些方便、实用的操作I/O的方法,这里的nio是java nonblocking input output(非阻塞IO)的简写。下面简要介绍其中的一些主要方法。1、Java.io.BufferedReader类中lines()方法。该方法的原型为:public Stream<String> lines();...

2018-12-13 10:00:51 216

原创 Java之路:字节流与字符流

尽管可以使用File进行文件的操作,但是如果要进行文件内容的操作,在Java之中就必须通过两类流操作完成。 Java的流操作分为字节流和字符流两种。字符流处理的对象单元是Unicode字符,每个Unicode字符占据2个字节,而字节流输入输出的数据是以单个字节(Byte)为读写单位。这种流操作方式给操作一些双字节字符带来了困难。字符流是由Java虚拟机将单个字节转化为2个字节的Unicode字...

2018-12-12 18:07:27 272 1

原创 Java之路:RandomAccessFile类

Java提供了专门处理文件的类,即RandomAccessFile(随机访问文件)类。该类是Java语言中功能最为丰富的文件访问类。RandomAccessFile类支持“随机访问”方式,“随机”是指可以跳转到文件的任意位置处读写数据。在访问一个文件的时候,不必把文件从头读到尾,而是希望像访问一个数据库一样“随心所欲”地访问一个文件的某个部分,这时使用RandomAccessFile类就是...

2018-12-12 15:58:05 460

原创 Java之路:文件操作类——File

要把程序所处理的数据在不同的内存容器(内存或外存)进行传输,例如将内存的数据写到外存(某个文件中),就要用到I/O(输入/输出)技术。Java提供的I/O操作可以把数据保存到多种类型的文件中。大多数的应用程序都需要与外部的输入/输出设备I/O(Input/Output)进行数据交换。在Java中,所有的I/O机制都是基于数据“流”方式进行输入/输出。这些“数据流”可视为同一台计算机不同设备...

2018-12-12 14:27:14 357

原创 Java之路:Lambda

在Java 8新引入了Lambda表达式,所以创建线程的形式有所变化,Lambda表达式更能够适用在并发的条件下,跟多线程起的作用不一样。这里提到的lambda表达式,相当于大多数动态语言中常见的闭包、匿名函数的概念。也类似于C语言中一个函数指针,这个指针可以把一个函数名作为一个参数传递到另外一个函数中。利用Lambda表达式,创建新线程的示范代码如下:Thread thread = new...

2018-12-12 12:08:50 116

原创 Java之路:线程生命周期的控制

任何事物都有一个生命周期,线程也不例外。要想控制线程的生命,先得了解线程产生和消亡的整个过程。请读者结合前面讲的内容,请观察下图:控制线程生命周期的方法有多种,如suspend()方法、resume()方法和stop()方法。但是这3个方法都不推荐使用,特别是suspend和resume方法尽量慎用,原因是它们很可能导致发生死锁。虽然stop()能够避免死锁的发生,但是也有其不足之处。如果一...

2018-12-12 11:56:44 140

原创 Java之路:线程间的通信

同属于一个进程的多个线程,是共享地址空间的,它们可以一起协作来完成指定的任务。因此,线程之间必须相互通信,才能完成协作。一、引入问题下面通过一个应用案例来讲解线程间的通信。把一个数据储存空间划分为两个部分:一部分用于储存用户的姓名,另一部分用于储存用户的性别。这个案例包含两个线程:一个线程向数据存储空间添加数据(生产者),另一个线程从数据存储空间中取出数据(消费者)。这个程序有两种意外需要考...

2018-12-12 11:43:44 125

原创 Java之路:死锁

在没有讲解死锁的概念之前,我们先从一个生活中的案例来体会一下:假设有甲乙两个人在就餐,每个人就餐必须同时拥有一把餐刀和一把叉子。但目前餐具不足,统共只有一把餐刀和一把叉子。现在,甲拿到了一把餐刀,乙拿到了一把叉子,他们都无法吃到饭。于是,就有了下面的对话:甲:“乙你先给我叉子,我再给你餐刀!”乙:“甲你先给我餐刀,我才给你叉子!”……如果甲乙双方都不让步,那么局面就会一直僵持下去,他们...

2018-12-12 11:00:24 172

原创 Java之路:多线程的同步

先来看一个程序:package com.xy.thread;class ThreadDemo3 extends Thread { private static int tickets = 5; // 将票设置为静态的 public void run() { while(tickets > 0) { System.out.println(Thread.currentThrea...

2018-12-12 10:37:17 153

原创 Java之路:多线程

一、进程与线程 进程:进程就是程序执行中的程序。它是一个动态概念。当我们下载一个QQ程序(腾讯公司出品的一款即时聊天软件)时,程序是静态不变的,而当我们开启3个QQ窗口聊天时,实际上就是开启了三个QQ进程。由此可见,一个程序是可以对应多个进程的。每一个进程都有自己独立的一组系统资源(包括处理机、内存等)。在进程的概念中,每一个进程的内部数据和状态都是完全独立的进程是操作系统的资源...

2018-12-12 10:07:42 171

基于FPGA的电子钟设计

基于FPGA的数字电子钟和闹钟设计,内附源码,及PPT教程。

2018-12-23

空空如也

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

TA关注的人

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