Java的特点
跨平台:一次编译,到处运行
半编译半解释:JVM把 .java编译成一种中间格式的字节码文件 .class(半编译),这些字节码文件在JVM上运行,JVM在将其逐行翻译给底层平台(半解释)
面性对象四大特性:
继承:也称泛化,一个类可以从一个现有的类中派生出来,派生出来的类称为子类,原有的类称为父类,子类拥有父类所有的属性和方法,除了构造器和私有成员,继承是代码重用的一种重要手段,也是实现开闭(对拓展开放,对修改关闭)原则的基础
封装:用不同的访问权限修饰符(public,protected,默认的,private),将代码组织到一个类中的过程,控制其访问范围
多态:是一种编程策略,要满足三个前提:有泛化关系,有父类引用指向子类对象,有方法的重写,多态的作用是解耦(高内聚,低耦合),提高维护性,节约成本
多态存在的三个必要条件:
1.要有继承,或实现
2.要有重写
3.父类引用指向子类对象
抽象:将事物抽象成概念模型,类,抽象类,接口,属性都是抽象的体现
标识符和变量常量
类名:每个单词首字母大写,其余字母小写
包名:全部小写
变量和方法名:第一个单词小写,其余单词首字母大写,其余字母小写
常量:全大写
数据类型
一.基本数据类型:
整型:byte(1),short(2),int(4),long(8)
浮点型:float,double
字符型:char(2)加 ' '
布尔值:boolean
二.引用数据类型:
类
数组
接口
运算符
+(除了运算还能拼接字符串),-,,/(整型与整型相除,结果取整)
+=,-=,=,/=,%=;
++,--;
表达式1?表达式2:表达式3
&&(与),||(或),!(非)
&,|,^,<<,>> a<<b = a*2^b
经典题目:
①交换两个变量;
②判断闰年、平年;
③int x=0;
for(int i=0;i<100;i++){x=x++;}
结果:x=0
④按位与或(和)逻辑与或区别?
逻辑与或有短路
按位与或能参与位运算
循环
while,do...while,for
经典题目:
①while与do...while的区别?do...while至少执行一次,因为是条件
②重点:2.一小球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
Double height=100,long=100,h=0;
For(i=1;i>=10;i++){
height=height/2;
}
For(j=1;j>10;j++){
h=100+h+long;
long=long/2;
}
System.out.println(“第十次高度为:”+height);
System.out.println(“十次的距离为:”+h);
③1+2+3+....+10的和
④1!+2!+3!+....+10!的和
⑤冒泡排序
⑥100以内所有质数
通过下标访问数组
arr[0],长度为n的数组,下标最大值为n-1
常见的异常:ArrayIndexOutOfBoundsException
栈内存中保存的引用 (引用数据类型可以赋值为null),元素都保留在堆中
遍历:
int arr[]={1,2,3,4,5};
for(int num : arr){
System.out.println(num);
}
int arr1[][]={{1,2,3},{4,5,6},{7,8,9}};
for(int i=0;i<arr1.length;i++){
for(int j;j<arr1[i];j++){
Sysotem.out.println(arr1[i][j]);
}
}
方法
public,private,默认,protected
public int getNum(){
return 1;}
方法调用
Demo d = new Demo();
d.getNum();
构造器:
Demo1 d = new Demo1();
方法名必须和类名必须一致
没有返回值这一概念
重载:同个类中,同名不同参的方法
类和对象:
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
Demo d[] = new Demo()[3];
static
属性,方法,方法块能够直接用类名调用
静态方法只能调用静态的成员
单例模式
私有构造器
继承 extends
public class Father{}
public class Son extends Father{}
main (){ Son s = new Son();}
子类的实例化过程,子类构造器会默认先调用父类的无参构造器先生成父类对象,然后再创建子类 对象,
若父类没有无参构造器,会编译出错,父类可以补无参构造器,或在子类构造器中用super调用父类有参构造器
重写:子类中与父类方法同名同参同返回值类型
多态
接口:interface,不能实例化抽象方法 implements
抽象类:adstract,不能实例化,可以有抽象方法
public abstract class demo{
public adstract void test(); }
包装类:
Integer Character
包装类.ValueOf(String)
包装类.parse XXXX
String,StringBuffer,StringBuilder
Math:random,ceil,floor
Date:Date date = new Date(); date.getTime();//从1970年到现在所经历的毫秒数
SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.format(Date); //Date转Sring类型
sdf.parse(String); //S听转Date类型
经典题目:①查单词:(substring,indexOf)②两日期字符串间隔多少天
集合
colliction
List
ArrayList
lenkedList
Vector
Set
HashSet
add()
Map:键值对
HashMap 允许null作为键值 线程不安全
HashTable 不允许 线程安全
put()
网友评论