![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java--------------------------
文章平均质量分 75
田园园野
我坚持,我坚信
展开
-
类与对象
类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。类:类是对象的抽象,描述一组对象的共同特征和行为(如人)。类中可以定义成员变量和成员方法,成员变量用于描述对象的特征,也称作属性(如一个人有眼睛,鼻子,嘴巴等属性),成员方法用于描述对象的行为,可简称方法(相当于C语言里的函数),对象:对象用于表示现实中该类事物的个体,如不同的你和我都是实实在在存在的人,是具体的,有各原创 2017-06-29 23:56:11 · 3214 阅读 · 1 评论 -
Java valueOf() 方法 parseInt()方法
一、String类中:valueOf() 方法返回字符串形式 String.valueOf()它可以将JAVA基本类型(int,double,boolean等)和对象(Object)转换成String型 valueOf(boolean b): 返回 boolean 参数的字符串表示形式。. value...原创 2017-07-21 21:17:32 · 993 阅读 · 0 评论 -
网络通信协议(IP地址,端口号,InetAddress,UDP与TCP)
一、计算机网络:通过某种方式将多台计算机进行连接,实现多台计算机彼此之间的互联以及数据的交换。即在不同的计算机上编写一些实现了网络连接的程序,这些程序可以实现位于同一个网络中的计算机之间的数据的交换。二、网络通信协议:同一个网络中的计算机进行连接和通信时的规则;目前应用最广泛的是TCP/IP协议(包括,IP协议、TCP协议,UDP协议,ICMP协议等)。在进行数据传输时,要求发送的数据与接收到的数...原创 2017-07-10 18:04:35 · 5004 阅读 · 0 评论 -
多线程通信( wait(),notify(),notifyAll() )
多线程通信:线程之间进行通信,协同完成工作。例如一条流水线的上下两个工序,他们必须以规定的速率完成各自的工作,才能保证产品再流水线中顺利的流转。如果下工序过慢,会造成产品再两道工序之间的积压,如果上工序过慢,会造成下工序长时间无事可做。线程之间的通信,可以让整个工作更好的完成。1、下面一个例子,两个线程去操作同一个存储空间,其中一个线程向存储空间存入数据,另一个线程负责取出数据。用此例子来演示线程...原创 2017-07-08 22:50:16 · 461 阅读 · 0 评论 -
线程死锁问题
Java线程死锁 Java线程死锁是一个多线程问题,是指不同的线程都在等待那些根本不可能被释放的锁,从而导致所有的工作都无法完成。例如有两个线程,分别代表两个饥饿的人,他们必须共享刀叉并轮流吃饭。他们都需要获得两个锁:共享刀和共享叉的锁。 假如线程 “A”获得了刀,而线程“B”获得了叉。线程“A”就会进入阻塞状态来等待获得叉,而线程“B”则阻塞来等待“A”所拥有的刀。这种现象就成为死锁。如下例所示...原创 2017-07-08 17:52:14 · 248 阅读 · 0 评论 -
多线程同步(线程安全,同步方法)
多线程同步java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。线程安全线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不出现数据不...原创 2017-07-08 17:15:27 · 439 阅读 · 0 评论 -
线程的调度(线程休眠,线程让步,线程插队)
程序中的多个线程是并发执行的,某个线程若想被执行必须要得到CPU的使用权,Java虚拟机会按照特定的机制为程序中的每个线程分配CPU的使用权,这种机制被称作线程的调度。两种线程调度模式:分时调度模式:让所有的线程轮流获得CPU的使用权,并且平均分配每个线程占用的CPU的时间片。抢占式调度模式:让可运行池中优先级高的线程优先占用CPU,而对于优先级相同的线程,随机选择一个线程使其占用CPU,当它失去...原创 2017-07-07 21:28:11 · 4629 阅读 · 0 评论 -
进程与线程(Java多线程总结一)
一、并发执行①在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。如我们在使用计算机时,可以一边听歌,一边玩游戏。这种多个程序块同时运行的现象被称作并发执行。②但并发和并行是不同的两个概念。并发是指一个时间段内同时运行,这是个区间;而并行是指在同一个时间点上运行,这个是一个点。而且并发在同一个时间...原创 2017-07-02 10:58:33 · 222 阅读 · 0 评论 -
线程的创建(Runnable,Thread)
一种时继承java.lang包下的Thread类,另一种是实现java.lang.Runnable接口。一、继承Thread类创建多线程①先看一个单线程程序,单线程程序的线程是进程默认创建,在代码中看不到。当一个Java程序启动时,就会产生一个进程,该进程会默认创建一个线程,在这个线程上会运行main()方法中的代码public class Example01 { public static v...原创 2017-07-07 12:01:57 · 657 阅读 · 0 评论 -
线程的生命周期及状态转换
Java中,任何对象都有生命周期,线程也有生命周期。线程的生命周期开始:当Thread对象创建完成时线程的生命周期结束:①当run()方法中代码正常执行完毕 ②线程抛出一个未捕获的异或错误时。线程整个生命周期的五个阶段:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。新建状态: 当Thread对象创建完成时, 使...原创 2017-07-07 18:24:20 · 2031 阅读 · 0 评论 -
String类和StringBuilder类
一、String类和StringBuilder类和StringBuffer类的区别:String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。因此使用String类时,程序运行时会额外创建对象,当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。 至于 String...原创 2017-07-21 17:08:12 · 434 阅读 · 0 评论 -
线性表链式存储及其实现(单链表,循环链表,双向链表)
一、单链表:①用一组 地址任意的存储单元存放线性表中的数据元素。②以元素(数据元素的值) + 指针(指示后继元素存储位置) = 结点 (表示数据元素 或 数据元素的映象),③这种以“结点的序列”表示线性表,称作链表1、头结点,头指针 以线性表中第一个数据元素a0的存储地址作为线性表的地址,称作线性表的头指针。 有时为了操作方便,在第一个结点(首结点)之前虚原创 2017-07-11 13:31:04 · 1048 阅读 · 0 评论 -
线性表-顺序存储(Java数据结构)
一、线性表 一个线性表(Linear List)是由n(n≥0)个数据元素(结点,它可以是一个字母,数字,记录或更复杂的信息)所构成的有限序列。线性表逻辑地表示为:(a0,a1,…,an-1)。其中,n为线性表的长度,n=0时为空表。称i为ai在线性表中的位序号。二、线性表的抽象数据类型1、线性表的置空操作: clear()2、线性表判空操作: isEmpty(原创 2017-07-10 23:02:06 · 974 阅读 · 0 评论 -
基础练习 十六进制转八进制
基础练习 十六进制转八进制问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导原创 2017-06-24 17:53:51 · 710 阅读 · 0 评论 -
基础练习 数列排序 java 冒泡算法 foreach()
基础练习 数列排序问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式 输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 9import java.util.Arr原创 2017-06-24 14:39:55 · 843 阅读 · 0 评论 -
Java 中的包装类
一、Java 中的包装类1、在Java中,很多类的方法都需要接收引用类型的对象,此时就无法将一个基本数据类型的值传入,又如,基本数据类型是不具备对象的特性的,比如基本类型不能调用方法、功能简单。。。,为了让基本数据类型也具备对象的特性,JDK中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象(装箱),同样,引用数据类型的对象变成基本数据类型的值叫做(拆箱)将在Ja...原创 2017-07-21 21:26:45 · 464 阅读 · 0 评论 -
Math类 random()与Random()
一、Math类Math 类位于 java.lang 包中,Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。Math类中有两个静态常量PI和E,分别代表数字常量π和epackage tcy01;public class Math1 { public static void main(String[] args) { double a=45...原创 2017-07-22 16:43:32 · 866 阅读 · 0 评论 -
Date类,Calendar类,DateFormat类,SimpleDateFormat类
一、Date类Date 类在java.util 包。这个类最主要的作用就是获取当前时间,Calendar类取代了Date 类很多的功能,下面为 Date 类获取当前时间:以默认的英文格式输出日期和时间。import java.util.*;public class Example22 { public static void main(String[] args) { Date date1...原创 2017-07-22 21:06:16 · 508 阅读 · 0 评论 -
类的封装
类的封装类的封装指在定义一个类时,将类中的属性私有化,即使用private关键字来修饰。被private关键字来修饰属性只能在它所在类中被访问,为了能让外界访问私有属性,需要提供一些使用public修饰的公有方法,如下例定义的getName(),setName()方法;class Student1 { private String name; // 将name属性私有化,以实现类原创 2017-06-30 00:21:35 · 1148 阅读 · 0 评论 -
构造方法
若没有构造方法,实例化一个对象后,如果要为这个对象中的属性赋值,必须要通过直接访问对象的属性或调用方法才可以。通过构造方法,当类实例化一个对象时会自动调用构造方法,在实例化对象的同时就为这个对象的属性进行赋值。如果一个类中的方法同时满足以下三个条件,该方法称为构造方法:1、方法名与类名相同。2、在方法名的前面没有返回值类型的声明。3、在方法中不能使用return语句返回一...原创 2017-06-30 09:23:42 · 1611 阅读 · 6 评论 -
this关键字 Java
在Java语言中,当创建一个对象后,Java虚拟机就会为其分配一个指向对象本身的指针,这个指针就是“this”。在我们使用this时,this一般出现在类的方法里面,当这个方法还没有调用的时候this指的是谁并不知道,但是实际当中如果new一个对象出来之后,this指的就是当前这个对象,对哪个对象调用这个方法this指的就是谁(创建一个对象后,Java虚拟机就会为其分配一个指向对象本身的指针)原创 2017-06-30 10:12:52 · 1414 阅读 · 2 评论 -
static关键字 java
static最突出的特点是在没有创建对象的情况下来就可以调用方法或变量。被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。static可以用来修饰类的成员方法、类的成员变量,也可以编写static代码块来优化程序性能。下面对这些特性进行讲解:1、静态变量static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有原创 2017-06-30 13:00:46 · 264 阅读 · 0 评论 -
java 垃圾回收
一个对象在成为垃圾后会暂时地保存在内存中,当这样的垃圾堆积到一定程度时,Java虚拟机会启动垃圾回收器将这些垃圾对象从内存中释放,从而使程序获得更多可用的内存空间,除了等待Java虚拟机自动垃圾回收,也可以通过调用System.gc()方法来通知Java虚拟机立即进行垃圾回收。当一个对象在内存中被释放时,它的finalize()方法会被自动调用,因此可以在类中通过定义finalize()方法来原创 2017-06-30 14:02:08 · 531 阅读 · 0 评论 -
final关键字 Java
被final修饰的类,变量和方法具有以下特性:1、final修饰的类不能被继承。final class Animal { // 方法体为空}// Dog类继承Animal类class Dog extends Animal { }class Example06 { public static void main(String[] args) { Dog dog = ne原创 2017-06-30 23:46:15 · 197 阅读 · 0 评论 -
抽象类和接口
1、抽象类当定义一个类时,常常需要定义一些方法来描述该类的行为特征,但有时这些方法的实现时无法确定的,例如定义一个Animal类,其中shout()方法用于表示动物的叫声,但针对不同的动物,叫声是不同的,因此在shout()方法中无法准确描述动物的叫声。针对上面的情况,Java中允许在定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字来修饰。含有抽象原创 2017-07-01 00:36:44 · 418 阅读 · 0 评论 -
多态 Java
1、多态性是指允许不同类的对象对同一消息作出响应。可以设计一个方法,参数类型为类或接口(是一个父类类型的变量),传入的参数是一个子类类型的对象,根据引用子类对象特征的不同,得到不同的运行结果。如下面代码:// 定义接口Anmalinterface Animal { void shout(); // 定义抽象shout()方法}// 定义Cat类实现Animal接口cl原创 2017-07-01 17:37:35 · 396 阅读 · 0 评论 -
Java 异常 异常链
一、异常在程序运行过程中,会发生各种非正常的状况,比如程序运行时空间不足,网路连接中断,被装载的类不存在等,针对这种情况,在Java中引入了异常,以异常类的i形式对这些非正常情况进行封装,通过异常处理机制对程序运行时发生的各种问题进行处理。二、异常处理1、try....catchtry代码块中编写可能发生异常的Java语句,catch代码块中编写针对异常进行处理的代码,当try代码原创 2017-07-02 00:14:59 · 410 阅读 · 0 评论 -
Java 内部类
允许在一个类的内部再定义类(这个在内部定义的类称作内部类),内部类就是一个类中包含着的另外一个类。如同一个人是由头、胳膊、脚等身体器官组成,内部类相当于其中的某个器官之一,例如头:头也有自己的属性(眼睛,嘴巴,鼻子)和行为(嘴巴可以吃饭),不能单方面用属性或者方法表示一个头,也需要一个类,头相当于内部类,人相当于外部类。内部类根据类的位置,修饰符,和定义的方式可以分为成员内部类,静态内原创 2017-06-30 16:40:19 · 370 阅读 · 0 评论 -
堆,栈,堆栈
下面主要从数据结构书中所说的堆,栈,树以及计算机操作系统中的栈,堆说。一、数据结构中的堆,栈数据结构中的堆,栈,树,是一个概念,是逻辑存在的,也就只是一个名字,不是物理存在的。1、堆(heap):堆有大根堆和小根堆,堆是一种特殊的树,它每个结点都有一个值,堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。就类似一堆东西一样,按照由大到小(或由小到大)“堆”起来。原创 2017-07-23 20:34:10 · 478 阅读 · 0 评论 -
类的继承 Java
1、继承的概念在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会拥有父类所有可继承的属性和方法。如人是一个类,有属性(头,胳膊,腿),方法(走路,吃饭)。而又可以由人这个类派生出黑人和白人两个类,为黑人添加一个黑皮肤,而为白人添加一个白皮肤。如果想声明一个类继承另一个类,需要使用extends关键字。下面代码演示如何继承父原创 2017-06-30 20:18:40 · 928 阅读 · 0 评论 -
Scanner类 Scanner类输入数字,字母,字符串
1.输入字符串import java.util.Scanner;class Example { public static void main(String[] args){ int i=0,j; String[] arr = new String[13]; Scanner scan=new Scanner(System.in); //next(),nextLine()获原创 2017-06-15 19:55:36 · 9839 阅读 · 0 评论 -
java 集合类
一、1、所有的Java集合都在java.util包中2、Java集合框架:Java中的 一套设计优良的接口和类组成的集合框架。3、List、Set、Map是这个集合体系中最主要的三个接口。List有序且允许元素重复。ArrayList、LinkedList是主要的实现类。Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。Map也属于集合系统,HashMap、TreeMap是主...原创 2017-07-23 17:09:55 · 464 阅读 · 0 评论 -
入门训练 Fibonacci数列 圆的面积 序列求和 A+B问题
入门训练 Fibonacci数列 问题描述Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。说明:在本题中,答案是要求Fn原创 2017-06-24 10:01:29 · 463 阅读 · 0 评论