点击右侧边栏的Maven Projects,然后点击刷新按钮
abstract(抽象)修饰符,可以修饰类和方法 1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。
2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。
注意:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。
abstract修饰符在修饰类时必须放在类名前。
abstract修饰方法就是要求其子类覆盖(实现)这个方法。调用...
String是一个特殊的类。即可以用String str = new String("abc");的形式来创建,也可以用String str = "abc";的形式来创建。
对于new的形式,大家应该想法都比较一致,它是在堆中开一片内存。只要见到new,就一定是在堆中开辟了空间。另外要注意,如果是一个类,它里面有基本类型,则基本类型也放在堆中。
着重说一下对于:String str = "abc"的内部工作。Java内部将此语句转化为以下几个步骤:
如果不用new的形式,则我们要分析的空间不再是堆,而是数据区了。在JVM中,一共分为四个部分:堆,栈,数据区,代码区。
首先呢,...
1.包的概念
包(package)是Java提供的一种区别类的名字空间的机制,是类的组织方式,是一组相关类和接口的集合,它提供了访问权限和命名的管理机制。
Java中提供的包主要有以下3种用途:
1) 将功能相近的类放在同一个包中,可以方便查找与使用。
2) 由于在不同包中可以存在同名类,所以使用包在一定程度上可以避免命名冲突。
3) 在Java中,某次访问权限是以包为单位的。
1.1创建包
创建包可以通过在类或接口的源文件中使用 package语句实现,package语句的语法格式如下...
instanceOf 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:
( Object reference variable ) instanceOf (class/interface type)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
下面是一个例子:
String name = 'James'; boolean result = name instanceOf String...
1. java.lang.nullpointerexception
这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)
2. java.lang.class...
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位.
class Base {
Base() {
System.out.println("Base");
}
}
public class Checket extends Base {
Checket() {
super();//调用父类的构造方法,一定要放在方法的首个语句
System.out.println("...
用类名定义一个变量的时候,定义的应该只是一个引用,外面可以通过这个引用来访问这个类里面的属性和方法,那们类里面是够也应该有一个引用来访问自己的属性和方法纳?呵呵,JAVA提供了一个很好的东西,就是 this 对象,它可以在类里面来引用这个类的属性和方法。先来个简单的例子:
public class ThisDemo {
String name="Mick"; public void print(String name){
System.out.println("类中的属性 name="+this.name);
...
try{
//代码区
}catch(Exception e){
//异常处理
}
代码区如果有错误,就会返回所写异常的处理。
首先要清楚,如果没有try的话,出现异常会导致程序崩溃。
而try则可以保证程序的正常运行下去,比如说:
try{
int i = 1/0;
}catch(Exception e){
........
}
一个计算的话,如果除数为0,则会报错,如果没有try的话,程序直接崩溃。用try的话,则可以让程序运行下去,并且输出为什么出错!
try catch 是捕捉try部分的异常,当你没有tryca...
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
1、整数:包括int,short,byte,long
2、浮点型:float,double
3、字符:char
4、布尔:boolean
基本型别
大小
最小值
最大值
boolean
-----
-----
...
一、使用标准输入串System.in
//System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字
//System.in.read()返回一个整数
//必须初始化
//int read = 0;
char read = '0';
System.out.println("输入数据:");
try {
//read = System.in.read();
read = (char) System.in.read();
}catch(Exception e){
e.printSt...
各种数字类型转换成字符串型:
String s = String.valueOf( value); // 其中 value 为任意一种数字类型。
字符串型转换成各种数字类型:
String s = "169"; byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s ); Float f = Float.parseFloat( s );
Double d = Dou...
String类对象的常用操作及方法
在Java中,String类包含有50多个方法来实现字符串的各种操作,以下介绍一些我们需要经常使用的方法.
(1)字符串的连接
public String concat(String str)
该方法的参数为一个String类对象,作用是将参数中的字符串str连接到原来字符串的后面.
(2)求字符串的长度
public int length()
返回字串的长度,这里的长度指的是字符串中Unicode字符的数目.
(3)求字符串中某一位置的字符
public char charAt(int index)
该方法在一个特定的位置索引...
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。
堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址,在栈中的这个特殊的变量就变成了数组或者对象的引用变量,...
java中变量和对象的区别如下:
变量只是分配了栈内存,并没有分配内存空间,而对象是已经在内存中占用了空间的。
变量声明之后如果没有进行赋值,是不能在代码中使用的。而对象是可以在代码使用,并使用它的成员变量或者方法。
一。JAVA中执行顺序
静态块
块
构造器
父类构造器
二。JAVA中赋值顺序
静态块直接赋值
块直接赋值
父类继承的属性已赋值
静态变量声明时赋值
成员变量声明时赋值
构造器赋值
...
接口只定义方法,没有实现,普通类要实现接口,implement,每个方法都必须实现。继承,父类只能一个,不能继承多个,但是接口是可以实现多个的。接口确实是一种特殊的“抽象类”,接口里的所有方法都是抽象方法。 一个Java源文件里最多只能有一个public接口,如果一个Java源文件里定义了一个public接口,则该源文件的主文件名必须与该接口名相同——从这个角度看来,接口可以被当成特殊的类。当一个类既需要继承父类有需要实现接口时,先继承基类,再实现接口
public class C extends B implements A
{...}
一、定义
Java接口(I...
Java 继承
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。
如果类A是类B的父类,而类B是类C的父类,我们也称C是A的子类,类C是从类A继承而来的。在Java中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类
继承中最常使用的两个关键字是extends和implements。
这两个关键字的使用决定了一个对象和另一个对象是否是IS-A(是一个)关系。
通过使用这两个关键字,我们能实现一个对象获取另一个对象的属性。
所有Jav...
在资源的同步互斥中,生产者-消费者的含义是,系统中有很多生产者和消费者同时工作, 生产者负责 生产需要的资源,消费者消耗资源。 当消费者消费资源时,如果资源 不足,则等待。反之当生产者生产资源 时,如果资源已经满足需要,则也要等待该生产。同一时刻只能有一个生产者或消费者进行操作。
package com.qun;
public class Theaddemo {
class BreadContainer {
public static final int maxNum = 600;
private int num;
public BreadConta...
对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:
public class InitialOrderTest {
// 静态变量
public static String staticField = "静态变量";
// 变量
public String field = "变量";
// 静态初始化块
static {
System.out.println(staticField);
System.out.println("静态初始化块"...