Java基础知识点学习笔记
2016-11-10 11:40
274 查看
爱Java 2016-11-08 22:50
Java基本语法:
__1、标识符 Java出现的名称 如源文件名 类名 变量名 方法名
命名规范(见名知意):
1、类名 :所有单词首字母大写的 其他字母要小写 一般使用名词命名 如
2、变量名:第一个单词首字母小写 其他单词首字母大写 其他字母小写 一般使用形容词 如
3、常量名:所有字母都大写 多个单词之间使用下划线隔开 如
4、方法名:第一个单词首字母小写 其他单词首字母大写 其他字母小写 一般使用动词 如
__2、变量 定义 变量的数据类型 变量名[=初始值];变量可能是基本数据类型 如
也可能是引用数据类型的变量 如
__3、常量 定义 final 数据类型 常量名 = 初始值;
__4、数据类型
基本数据类型
基本数据类型的转换
1、自动转换 :
小容量类型 自动转换为大容量类型
byte, short, char 参与运算时 先提升为int
如
2、强制转换
大容量 转换为 小容量
注意:强制转换可能丢失精度
引用数据类型
数组
类
接口
枚举 :
1. 默认实现java.lang.Comparable接口
2. 它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。
3. 所有枚举值都是public , static , final的。
5、运算符
算术
比较运算符
所有的比较都可以应用到
对于boolean只能使用
引用数据类型 只能使用
赋值运算符
&& 短路
& 非短路
|| 短路
| 非短路
! 非
程序的流程结构
顺序结构
选择结构
if(条件表达式){}else{}
switch case break default
switch(表达式){// byte short char int String enum(也可以是枚举类型)
case 常量1:
语句块;
[break;]
case 常量2:
语句块;
[break;]
default:
默认的语句块
[break;]
}
循环结构
while(条件表达式){
}
do{
}while(条件表达式);
for(初始表达式;条件表达式;迭代表达式){
}
流程跳转语句
break
continue
面向对象
1、数组定义和使用
定义数组:
数据类型[] 数组名;
如
创建数组:
a、scores = new int[10];
b、Student stu1 = new Student();
Student[] students = {new Student(),new Student(),stu1};
c、Student[] students = new Student[2];
students[0] = new Student();
通过索引引用数组中的元素 从0 开始 到 length-1
数组有length属性表示数组的长度
注意:数组越界异常 (运行时异常) java.lang.ArrayIndexOutOfBoundsException
2、面向对象的相关语法:
类定义
[修饰符(public|final|abstract)] class 类名 [extends 父类][implements 接口1,接口2]{
//成员变量 定义:[修饰符(public|protected|private|final|static)] 数据类型 变量名[=初始值]; //成员方法 定义:[修饰符(public|protected|private|final|static|abstract)] 返回值类型|void 方法名([参数类型 参数名]) throws 异常类型,异常类型{ } //构造方法 定义:[修饰符(public|protected|private)] 类名([参数类型 参数名]){} //成员内部类 //静态和实例代码块
}
对象创建
Student stu = new Student() ;
new Student().setAge(10);
new 构造方法([参数]);
构造方法定义与使用
在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的 成员变量 赋初值的专门方法
1、有参
2、无参
public class A{
public A(){
System.out.println("调用了无参的构造函数");
}
public A(String mess){
System.out.println("调用了有参的构造函数\n"+
"参数内容为:"+mess);
}
}
方法重载(overload)
同一个类中定义类多个同名方法 但是这些方法参数不同
参数不同: 参数数据类型不同 参数个数不同
_ 什么是引用_
引用就是某一变量(目标)的一个别名,对引用的操作与对变量 直接操作 完全一样。
引用的声明方法:类型标识符 &引用名=目标变量名;
【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名
_ 对象的内存地址_
_ this关键字的使用_
this指的是当前类的当前对象 保存当前对象的引用
1、调用当前对象的成员变量和成员方法 如 this.成员变量名 或者 this.成员方法
2、在构造方法调用同一个类的另外一个构造方法 如 this([参数])
3、继承
Java中类和类之间是单继承 接口和接口是多继承
所有的类默认会继承Object
主要目的:
重用,扩展性提升
子类会继承父类中非私有的成员(成员变量 成员方法 成员内部类)
4、重写把从父类继承来的方法在子类中重新实现
注意:
和重载的区别
方法的签名要和父类一致(
访问修饰符要大于或者等于父类中方法
抛出异常个数要少于或者等于父类中异常个数
抛出异常的类型要和父类相同 或者 是父类中抛出异常类型的子类型
)
_ super_
当前对象的父对象
1、调用父类对象的成员变量和成员方法
2、在子类构造方法调用父类的构造方法
_ static _
修饰符 注意 不能和abstract一起使用
成员变量
类变量 是当前类所有对象共享的 建议使用类名调用
成员方法
类方法 建议使用类名调用
static{
}
_ final_
修饰符
变量 成员方法 类 注意 final不能和abstract一起使用
final 、finally 、finalize三者之间的区别
5、封装
把一类事物进行抽象 取出它属性和行为封装到Java类中
属性的封装 将属性私有 提供get和set方法
private 修饰 成员变量 成员方法 构造方法
程序23种设计模式 其中有一种模式 :单例模式 保证某一个类在程序运行期间只有一个对象 而且获取多次是同一个对象
抽象类 和 抽象方法
abstract class 类名{
}
抽象类中可能会定义抽象方法
6、接口
[public] interface 接口名 [extends 接口1,接口2]{
//常量 public static final
//抽象方法 public abstract
}
类实现接口
7、向上转型
把子类对象 赋值 给父类型的引用变量 就是向上转型:
8、多态
相同类型的引用变量 调用同一个方法表现出不同的行为
Animal a = new Cat();
a.shout();//喵喵
a = new Dog();
a.shout()://汪汪
访问修饰符
常用类:
Object
equals toString hashCode finalize wait notify notifyAll clone
String
最常用的
String s0 = new String("hello");
String s1 = "hello";
String s2 = "hello";
StringBuffer
StringBuilder
包装类
八种基本数据类型 每一个基本数据类型对应一个包装类
将字符串转换为基本数据类型值的方法 xxx parseXxx
自动装箱 和 自动拆箱
java.util.Date ****表示日期时间的对象
Date()
Date(long mills)
long getTime()
java.util.Calendar **** 通过这个类可以实现 设置具体某一个日期时间
java.text.SimpleDateFormat ****
集合
CollectionListArrayListLinkedListSetHashSetMap****
HashMapMap.Entry表示Map集合中一个键值对对象
getKey()
getValue()
Collections 排序
public void changeSort(int type){
Comparator comparator;
Toast.makeText(this, “type==”+type, 5).show();
switch(type){
case 1:{
// 价格从低到高排序
comparator = new PriceLowToHighComparator();
Collections.sort(list, comparator);
}
break;
case 2:{
// 价格从高到低排序
comparator = new PriceHighToLowComparator();
Collections.sort(list, comparator);
}
break;
}
adapter.setItemBeanList(list);
adapter.notifyDataSetChanged();
}
File 和 io流
io流和文件是Android常用技术
根据处理数据类型的不同分为:字符流和字节流
根据数据流向不同分为:输入流和输出流
线程
Java中线程的创建方式 以及保证类是线程安全
1、继承 java.lang.Thread
2、实现 java.lang.Runnable
重写他们的run方法 创建线程对象 调用start方法启动线程
掌握线程状态
异常
1、分类
运行时 :NullPointerException 空指针异常
ArrayIndexOutOfBoundsException 数组越界异常(数组下标越界)
StringIndexOutOfBoundsException 字符串越界异常(字符串索引越界)
ClassCastException 数字格式化异常
NumberFormatException 类转换异常
编译期异常: IOException 以及它的子类(FileNotFoundException(文件未找到异常),SocketException(套接字异常))
PaserException
2、异常处理的方式:
a、抛出 定义方式 指定 当前方法的方法体内可以能会产生异常类型
b、捕捉
网络编程
TCP
UDP
内部类
⒈ 静态内部类
⒉ 成员内部类
⒊局部内部类
⒋匿名内部类
枚举类型 和 类 以及 接口类似 是Jdk1.5之后提供的一种新的Java类型 类似于定义的常量
[public] enum 类型名{ //枚举常量
//成员方法
}
之前学习java时候做的总结笔记,希望对一些初学者能有所帮助。
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:454297367【长按复制】 我们一起学Java!
Java基本语法:
__1、标识符 Java出现的名称 如源文件名 类名 变量名 方法名
命名规范(见名知意):
1、类名 :所有单词首字母大写的 其他字母要小写 一般使用名词命名 如
Person如
TestPerson
2、变量名:第一个单词首字母小写 其他单词首字母大写 其他字母小写 一般使用形容词 如
stuAge
3、常量名:所有字母都大写 多个单词之间使用下划线隔开 如
static final int EXIT_ON_CLOSE=0
4、方法名:第一个单词首字母小写 其他单词首字母大写 其他字母小写 一般使用动词 如
void setAge(int age)
__2、变量 定义 变量的数据类型 变量名[=初始值];变量可能是基本数据类型 如
int age;
也可能是引用数据类型的变量 如
Student stu; __
__3、常量 定义 final 数据类型 常量名 = 初始值;
__4、数据类型
基本数据类型
byte, short, int, long, float, double, char, boolean
基本数据类型的转换
1、自动转换 :
小容量类型 自动转换为大容量类型
byte, short, char 参与运算时 先提升为int
如
short s1 = 1; short s2 = s1 + 1;
2、强制转换
大容量 转换为 小容量
注意:强制转换可能丢失精度
引用数据类型
数组
类
接口
枚举 :
1. 默认实现java.lang.Comparable接口
2. 它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。
3. 所有枚举值都是public , static , final的。
5、运算符
算术
+ - * / % ++ --
比较运算符
> >= < <= != ==
所有的比较都可以应用到
int, short, byte, long, float, double, char
对于boolean只能使用
==和
!=
引用数据类型 只能使用
==和
!=
赋值运算符
= ,+=, -= ,*= ,/= ,%=
如:int x = 20;逻辑运算符
&& 短路
& 非短路
|| 短路
| 非短路
! 非
程序的流程结构
顺序结构
选择结构
if(条件表达式){}else{}
switch case break default
switch(表达式){// byte short char int String enum(也可以是枚举类型)
case 常量1:
语句块;
[break;]
case 常量2:
语句块;
[break;]
default:
默认的语句块
[break;]
}
循环结构
while(条件表达式){
}
do{
}while(条件表达式);
for(初始表达式;条件表达式;迭代表达式){
}
流程跳转语句
break
continue
面向对象
1、数组定义和使用
定义数组:
数据类型[] 数组名;
如
int[] scores ; Student[] students;
创建数组:
a、scores = new int[10];
b、Student stu1 = new Student();
Student[] students = {new Student(),new Student(),stu1};
c、Student[] students = new Student[2];
students[0] = new Student();
通过索引引用数组中的元素 从0 开始 到 length-1
数组有length属性表示数组的长度
注意:数组越界异常 (运行时异常) java.lang.ArrayIndexOutOfBoundsException
2、面向对象的相关语法:
类定义
[修饰符(public|final|abstract)] class 类名 [extends 父类][implements 接口1,接口2]{
//成员变量 定义:[修饰符(public|protected|private|final|static)] 数据类型 变量名[=初始值]; //成员方法 定义:[修饰符(public|protected|private|final|static|abstract)] 返回值类型|void 方法名([参数类型 参数名]) throws 异常类型,异常类型{ } //构造方法 定义:[修饰符(public|protected|private)] 类名([参数类型 参数名]){} //成员内部类 //静态和实例代码块
}
对象创建
Student stu = new Student() ;
new Student().setAge(10);
new 构造方法([参数]);
构造方法定义与使用
在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的 成员变量 赋初值的专门方法
1、有参
2、无参
public class A{
public A(){
System.out.println("调用了无参的构造函数");
}
public A(String mess){
System.out.println("调用了有参的构造函数\n"+
"参数内容为:"+mess);
}
}
方法重载(overload)
同一个类中定义类多个同名方法 但是这些方法参数不同
参数不同: 参数数据类型不同 参数个数不同
_ 什么是引用_
引用就是某一变量(目标)的一个别名,对引用的操作与对变量 直接操作 完全一样。
引用的声明方法:类型标识符 &引用名=目标变量名;
【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名
_ 对象的内存地址_
_ this关键字的使用_
this指的是当前类的当前对象 保存当前对象的引用
1、调用当前对象的成员变量和成员方法 如 this.成员变量名 或者 this.成员方法
2、在构造方法调用同一个类的另外一个构造方法 如 this([参数])
3、继承
Java中类和类之间是单继承 接口和接口是多继承
所有的类默认会继承Object
主要目的:
重用,扩展性提升
子类会继承父类中非私有的成员(成员变量 成员方法 成员内部类)
4、重写把从父类继承来的方法在子类中重新实现
注意:
和重载的区别
方法的签名要和父类一致(
访问修饰符要大于或者等于父类中方法
抛出异常个数要少于或者等于父类中异常个数
抛出异常的类型要和父类相同 或者 是父类中抛出异常类型的子类型
)
_ super_
当前对象的父对象
1、调用父类对象的成员变量和成员方法
2、在子类构造方法调用父类的构造方法
_ static _
修饰符 注意 不能和abstract一起使用
成员变量
类变量 是当前类所有对象共享的 建议使用类名调用
成员方法
类方法 建议使用类名调用
static{
}
_ final_
修饰符
变量 成员方法 类 注意 final不能和abstract一起使用
final 、finally 、finalize三者之间的区别
5、封装
把一类事物进行抽象 取出它属性和行为封装到Java类中
属性的封装 将属性私有 提供get和set方法
private 修饰 成员变量 成员方法 构造方法
程序23种设计模式 其中有一种模式 :单例模式 保证某一个类在程序运行期间只有一个对象 而且获取多次是同一个对象
抽象类 和 抽象方法
abstract class 类名{
}
抽象类中可能会定义抽象方法
[修饰符(public|protected)] abstract 返回值类型|void 方法名([参数类型 参数名]);
6、接口
[public] interface 接口名 [extends 接口1,接口2]{
//常量 public static final
//抽象方法 public abstract
}
类实现接口
[implements 接口名1,接口名2]
7、向上转型
把子类对象 赋值 给父类型的引用变量 就是向上转型:
WindowListener wl = new WindowAdepater(){};向上转型之后 只能调用父类型中定义成员变量和成员方法,但是如果这个方法子类中写了 调用子类重写后的方法
8、多态
相同类型的引用变量 调用同一个方法表现出不同的行为
Animal a = new Cat();
a.shout();//喵喵
a = new Dog();
a.shout()://汪汪
访问修饰符
public > protected > 默认的 > private
常用类:
Object
equals toString hashCode finalize wait notify notifyAll clone
String
最常用的
String s0 = new String("hello");
String s1 = "hello";
String s2 = "hello";
StringBuffer
StringBuilder
包装类
八种基本数据类型 每一个基本数据类型对应一个包装类
将字符串转换为基本数据类型值的方法 xxx parseXxx
自动装箱 和 自动拆箱
java.util.Date ****表示日期时间的对象
Date()
Date(long mills)
long getTime()
java.util.Calendar **** 通过这个类可以实现 设置具体某一个日期时间
java.text.SimpleDateFormat ****
集合
CollectionListArrayListLinkedListSetHashSetMap****
HashMapMap.Entry表示Map集合中一个键值对对象
getKey()
getValue()
Collections 排序
public void changeSort(int type){
Comparator comparator;
Toast.makeText(this, “type==”+type, 5).show();
switch(type){
case 1:{
// 价格从低到高排序
comparator = new PriceLowToHighComparator();
Collections.sort(list, comparator);
}
break;
case 2:{
// 价格从高到低排序
comparator = new PriceHighToLowComparator();
Collections.sort(list, comparator);
}
break;
}
adapter.setItemBeanList(list);
adapter.notifyDataSetChanged();
}
File 和 io流
io流和文件是Android常用技术
根据处理数据类型的不同分为:字符流和字节流
根据数据流向不同分为:输入流和输出流
线程
Java中线程的创建方式 以及保证类是线程安全
1、继承 java.lang.Thread
2、实现 java.lang.Runnable
重写他们的run方法 创建线程对象 调用start方法启动线程
掌握线程状态
异常
1、分类
运行时 :NullPointerException 空指针异常
ArrayIndexOutOfBoundsException 数组越界异常(数组下标越界)
StringIndexOutOfBoundsException 字符串越界异常(字符串索引越界)
ClassCastException 数字格式化异常
NumberFormatException 类转换异常
编译期异常: IOException 以及它的子类(FileNotFoundException(文件未找到异常),SocketException(套接字异常))
PaserException
2、异常处理的方式:
a、抛出 定义方式 指定 当前方法的方法体内可以能会产生异常类型
b、捕捉
try{ }catch(异常类型 对象名){}finally{总是要执行的代码}
网络编程
TCP
UDP
内部类
⒈ 静态内部类
⒉ 成员内部类
⒊局部内部类
⒋匿名内部类
枚举类型 和 类 以及 接口类似 是Jdk1.5之后提供的一种新的Java类型 类似于定义的常量
[public] enum 类型名{ //枚举常量
//成员方法
}
之前学习java时候做的总结笔记,希望对一些初学者能有所帮助。
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:454297367【长按复制】 我们一起学Java!
相关文章推荐
- java学习笔记之java基础中那些被忽略的小知识点
- [置顶] Java基础知识点学习笔记
- java基础学习笔记 -- OOP知识点备忘
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(三)
- 整理JAVA学习笔记 JAVA基础需要掌握重点
- [转]CoreJava学习笔记_Java语法基础
- java学习笔记-jsp基础1
- Java基础学习笔记
- 传智播客_张孝祥_Java基础4_面向对象下_学习笔记
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(四):
- JAVA学习笔记(基础知识)
- 做java程序员有一段时间了,但是感觉基础的东西了解的很少很少,我从现在开始从新开始。。。。。。。。。。。学习笔记(连载)给有需要的人
- java学习笔记-java基础1
- java学习笔记二-基础学习
- 分布计算环境学习笔记5——Java Enterprise Edtion基础
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(一)
- java基础学习笔记原始类型变量赋值与非原始变量赋值
- Java学习笔记(一、Java语言基础)
- Java学习笔记(三、面向对象编程基础)
- 传智播客_张孝祥_Java基础3_面向对象上_学习笔记