Java学习笔记(一)
2015-07-25 10:34
337 查看
以前学习java的时候记录下来的笔记。传上来和大家一起分享
JAVA的主要特征:
解释性(Java的源程序被编译成字节码,在Java虚拟机上运行。Writeonce, run anywhere)与体系无关(由于Java是解释性的,可以在任何操作系统上运行。)
可移植性(Java程序无需重新编译就可以在不同的平台上运行。在java语言中没有针对平台的特征,例如整数在不同平台上是长度相同的。)
next() 读入一个字符串(空白符结束)
nextLine() 读入一行字符(回车键结束)
标识符可以为任意长度。
class C
{
inta = 1;
publicstaticvoidmain(String[] args)
{
}
voida()
{
System.out.println("A");
}
}}
变量名可以和函数名同名。
char表示16位的单个Unicode字符。
如果被调用的方法是当前类中的静态方法,可以直接调用。如果是其它类中的静态方法需要通过类名调用
A aa =new A() ,//(A*)malloc(sizeof(A))
New A()在堆里d=动态分配了内存,被当做了A对象。
Aa本身的内存在栈中分配的
堆中的内存地址赋给了aa
Aa指向堆的内存,aa代表了堆的内存
Aa.i代表aa这个静态指针变量所指向的动态内存中的A对象
构造函数没有返回值
所有对象共用一个类方法,只为属性分配内存,如果是static变量,则也是和方法一样分配一次
每一个非static方法中都隐含着this指针
静态函数内部,没有this指针。因为属于类本身的,不用再分配内存。
Static的属性(例如i)属于类本身。
只有非private的static成员才可以通过类名的方式访问
非静态方法可以访问静态方法,有对象就肯定有静态的方法。(成员)。
静态方法不能访问非静态成员
Static不能修饰构造方法。
私有不能被继承。(私有成员无法被子类继承)
私有成员物理上已经被继承过来,不过逻辑上不能访问它。
普通方法中不能调用父类的构造方法,必须借助super.
Super语句必须是第一条语句。
如果不写super(),编译器会自动帮你添加
(每个子类构造方法的第一条语句,都是隐含地调用super())
如果父类有f(),那么Super.f()调用父类的f();
重写方法时(在子类中重新定义父类中已有的方法),不能使用比父类中被覆盖的方法更严格的访问权限。
(重写方法的权限不能低于被重写方法的访问权限)
在子类重写了一个方法f()后,这个对象的f()实际上是含有了两个。
子类可以赋给父类,父类不能赋给子类。把一个父类强行转化为子类对象,编译不报错,但运行错误。因为强行转换这一动作是对的。
通过父类引用只能能访问子类对象从父类继承过来的成员。
表达式之间只能用分号,逗号只能在定义时以及参数列表中使用。
*异常不是编译错误。
Try
{
}
Catch(ArithmeticException e)//e用于接收抛出的异常对象 这个可以直接写父类Exception
{
}
PrintStackTrace()可以简单的认为是输出该异常的具体错误,如果无异常则无现象。
Scanner sth=new scanner(System.in )System.in 是键盘标准输入流。
空指针异常:
Class A{
Public int age;
}
….
A p =null;
p.A;
JAVA的主要特征:
解释性(Java的源程序被编译成字节码,在Java虚拟机上运行。Writeonce, run anywhere)与体系无关(由于Java是解释性的,可以在任何操作系统上运行。)
可移植性(Java程序无需重新编译就可以在不同的平台上运行。在java语言中没有针对平台的特征,例如整数在不同平台上是长度相同的。)
next() 读入一个字符串(空白符结束)
nextLine() 读入一行字符(回车键结束)
标识符可以为任意长度。
class C
{
inta = 1;
publicstaticvoidmain(String[] args)
{
}
voida()
{
System.out.println("A");
}
}}
变量名可以和函数名同名。
char表示16位的单个Unicode字符。
如果被调用的方法是当前类中的静态方法,可以直接调用。如果是其它类中的静态方法需要通过类名调用
A aa =new A() ,//(A*)malloc(sizeof(A))
New A()在堆里d=动态分配了内存,被当做了A对象。
Aa本身的内存在栈中分配的
堆中的内存地址赋给了aa
Aa指向堆的内存,aa代表了堆的内存
Aa.i代表aa这个静态指针变量所指向的动态内存中的A对象
构造函数没有返回值
所有对象共用一个类方法,只为属性分配内存,如果是static变量,则也是和方法一样分配一次
每一个非static方法中都隐含着this指针
静态函数内部,没有this指针。因为属于类本身的,不用再分配内存。
Static的属性(例如i)属于类本身。
只有非private的static成员才可以通过类名的方式访问
非静态方法可以访问静态方法,有对象就肯定有静态的方法。(成员)。
静态方法不能访问非静态成员
Static不能修饰构造方法。
私有不能被继承。(私有成员无法被子类继承)
私有成员物理上已经被继承过来,不过逻辑上不能访问它。
普通方法中不能调用父类的构造方法,必须借助super.
Super语句必须是第一条语句。
如果不写super(),编译器会自动帮你添加
(每个子类构造方法的第一条语句,都是隐含地调用super())
如果父类有f(),那么Super.f()调用父类的f();
重写方法时(在子类中重新定义父类中已有的方法),不能使用比父类中被覆盖的方法更严格的访问权限。
(重写方法的权限不能低于被重写方法的访问权限)
在子类重写了一个方法f()后,这个对象的f()实际上是含有了两个。
子类可以赋给父类,父类不能赋给子类。把一个父类强行转化为子类对象,编译不报错,但运行错误。因为强行转换这一动作是对的。
通过父类引用只能能访问子类对象从父类继承过来的成员。
表达式之间只能用分号,逗号只能在定义时以及参数列表中使用。
*异常不是编译错误。
Try
{
}
Catch(ArithmeticException e)//e用于接收抛出的异常对象 这个可以直接写父类Exception
{
}
PrintStackTrace()可以简单的认为是输出该异常的具体错误,如果无异常则无现象。
Scanner sth=new scanner(System.in )System.in 是键盘标准输入流。
空指针异常:
Class A{
Public int age;
}
….
A p =null;
p.A;
相关文章推荐
- 杭电ACM2033java做法
- Java Web开发中路径问题小结
- 使用JavaMail创建邮件和发送邮件
- Spring(十)通过动态代理(JDK的Proxy)和cglib实现AOP技术
- Java 学习笔记二
- java常用设计模式
- Spring AOP整理
- java序列化和反序列化
- java新手笔记13 继承
- Java学习笔记-------登录界面0
- JAVA 并发编程-多个线程之间共享数据(六)
- myeclipse8.5新建的maven项目变成web项目
- Java:IO流的一些典型例子
- java新手笔记12 单例
- 排序都有哪几种方法?请列举。用JAVA实现一个快速排序?
- Java 多线程(六) synchronized关键字详解
- @[Java]读取文件方法大全
- java新手笔记11 类的静态属性、方法(单例)
- java新手笔记10 构造器
- eclipse中配置maven