<<<<<<< HEAD
=======
-
javac 把java 程序编译成字节码,java 运行javac产生的.class
- 在命令行使用javac之后,如果源代码有package会报无法加载主类的错误
- javac执行成功后会生成.class文件,之后通过java执行时不加.class后缀
正例 java HelloJava
反例:java HelloJava.class
名称 long(L) int short byte 字节数 8 4 2 1 十六进制有前缀0x、八进制有前缀0
名称 float double 字节数 4 有后缀F 8 默认为无后缀的浮点数 单个字符
- java 利用关键字final声明常量
- 例如
final int AGE = 30 ;- 关键字final表示这个变量只能被赋值一次,一旦被赋值就不能更改了,习惯上常量名使用大写
- java中经常希望在一个类的多个方法中使用某个常量,通常讲这些常量称为类常量,例
public static final double CCC = 3.3- 类常量的定义位于main方法的外部,因此,在同一个类的其他方法也可以使用,而且如果被声明为public,其他类也可以使用
名称 & | ^ ~ >> << >>> 解释 与运算可以利用2的幂进行位屏蔽,例如n&8可以屏蔽除了右数第四位以外的位 或运算 异或 非 右移 左移 高位用0填充 Math类中的方法
方法 sqrt() pow(x,a) 三角函数 指数函数 对数函数 PI 平方根 x 的a次幂 sin cos tan... exp() log() π - double + 其他 = double
- 否则 float + 其他 = float
- 否则 long + 其他 = long
- 否则两者都转为int
强制将一个数值转换为另一种,又超出了目标类型的表示范围就会截断为一个完全不同的制如 (byte )300 = 40
+=右优先
a+=b+=c = a+=(b+=c)
有时候,变量的取值只在一个有限的集合内,例如披萨只有大中小三种尺寸,如果使用普通变量,可能会保存一个错误的值,这时可以使用枚举类型
枚举类型包含有限个命名的值
例如:
enum Size{SMALL,MEDIUM,LARGE};//现在可以声明一个这种变量Size s = Size.MEDIUM;两种方法
- int[]a
- int a []
- int [] a = {1};
new int[]{1}
int [] b =Arrays.copyOf(a,a.length)
main函数有一个字符串数组的形参
在命令行运行程序时可以传参
java Test -hello world
- 权限修饰符
- 可以修饰成员(变量和方法)
- 保护成员不被别的类使用
如果想让别的类访问,可以声明get 和set方法,方法用public修饰
平台指操作系统平台 如Windows Macos等
通过JVM(Java Virtual Machine)实现
一个平台对应一种JVM
第一个单词首字母小写,其余大写
所有单词首字母大写
只指定初始长度,系统分配初始值
int [] arr = new int [5];
[] 说明只是一个数组
new :为数组声明把内存
指定数组元素,系统决定长度
int [] arr = new int []{1,2,3}
简化
int [] arr = {1,2,3}
- 不能嵌套定义
- void可以不写return ,也可以写return ,但后面不加数据
同一个类中定义的多个方法满足以下条件
- 同一个类中
- 方法名相同
- 参数不同(数量或类型不同)
出现原因:需要对不同数据类型的元素实现相同的功能
以求和函数为例
-
对两个整数求和 int sum(int a,int b){return a+b}
-
对两个浮点数求和
float sum(float a,float b){return a+b}
-
对三个整数求和
int sum(int a,int b,int c){return a+b+c}
int result = sum(10,20)
float result2 = sum(1.0,2.0)
int result3 = sum(10,20,30)
查看代码执行流程
封装:面向对象三大特征之一(封装 继承 多态)
是面向对象编程语言对客观世界的模拟
- 封装原则
将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏i洗脑洗的访问
- 好处
通过方法来控制变量的操作,提高了代码的安全性
把代码用方法封装,提高的代码的复用性
一种特殊的方法,作用是创建对象
- 默认无参构造
Student s = new Student();
- 有参数的构造方法
- 静态变量
- 静态变量:又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它。静态变量在内存中只存在一份。
实例;
public class Test{ private static int i=1; public int getNext(){ return i++; } public static void main(String [] args){ Test test=new Test(); Test testObject=new Test(); test.getNext(); testObject.getNext(); System.out.println(testObject.getNext()); } }这段代码输出结果是3
如果i没被static修饰,那么调用两次test的getnext方法,i的值应该是2
可由于i是类变量,所以objtest的一次调用也要算进去
该题主要考察的是static属性和i++操作。
因为i是static的,是类属性,所以不管有多少对象,都共用的一个变量。这里getNext()方法被调用了三次,所以进行了三次i++操作。
但是由于getNext()操作的返回是:return i++; i++是先返回,后++,所以在println是,已经返回了i(此时i为3),再进行自增的,所以这里结果为3
-
实例变量:每创建一个实例就会产生一个实例变量,它与该实例同生共死。
-
静态方法
静态方法在类加载的时候就存在了,它不依赖于任何实例。所以静态方法必须有实现,也就是说它不能是抽象方法。
-
类
当final修饰一个类时,表明其为最终类,它不能被继承,并且类中所有的属性和方法都默认是final类型,如String,Integer等包装类均为final类。
-
方法 被final修饰的方法不可被重写。它可以防止任何继承类修改方法的意义和实现,而且,使用 final修饰方法的执行效率一般高于普通方法
-
变量
使用final修饰的变量称为常量(大写字母表示),只能被赋值一次,且赋值之后无法改变,这里的变量又可以分为基本类型变量和引用类型变量,final修饰基本类型变量时,变量的值不可改变;修饰引用变量时,变量指向的对象地址不可改变。
- 修饰成员变量
- 不带this指代形参
- 解决局部变量隐藏成员变量的问题
- 方法被哪个对象调用,this就指代那个变量
java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。
1)Web客户向Servlet容器发出Http请求;
2)Servlet容器解析Web客户的Http请求;
3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;
4)Servlet容器创建一个HttpResponse对象;
5)Servlet容器调用HttpServlet的service方法,这个方法中会根据request的Method来判断具体是执行doGet还是doPost,把HttpRequest和HttpResponse对象作为service方法的参数传给HttpServlet对象;
6)HttpServlet调用HttpRequest的有关方法,获取HTTP请求信息;
7)HttpServlet调用HttpResponse的有关方法,生成响应数据;
8)Servlet容器把HttpServlet的响应结果传给Web客户。
doGet() 或 doPost() 是创建HttpServlet时需要覆盖的方法.
e1ed46e751251cfd818ad1abe159af04cc2c1095
\
