java
jdk和jre的区别
jdk是java开发工具,它不仅提供java程序运行的jre,还提供一系列变异,运行等工具,如javac、java、javaw等。
jre只是java程序的运行环境,最核心的内容是jvm和核心类库。
环境变量classpath的作用
classpath环境变量保存的是一些目录和jar文件的地址,这些路径用来指定java程序在编译和运行的时候搜索类而用的。
什么是jvm及其工作原理
jvm是一种虚拟机,用于执行java程序,是java跨平台特性的依赖基础。jvm有自己想象的处理器、堆、栈、寄存器等,还有相应的指令系统。
java的内存回收
java的堆内存数据的释放功能是由垃圾回收机制自动进行的,无需程序员显示调用delect方法。该机制有效地避免了因为程序员忘记释放内存而造成的内存溢出的错误,相对于c++等需要显示释放内存的语言是一种巨大的改进。
利用命令提示符吧java程序打包成jar文件
利用jdk的bin目录下得jar命令可以完成java程序的打包,一般需要包含程序所需要的class文件、配置文件和manifest.cf文件。
jar cf test.jar .
-c 创建一个jar包
-f 指定jar包的文件名
java变量及其作用范围
java变量可以分为:静态变量,局部变量,成员变量三种。
静态变量指在类中使用static修饰的变量,他的生存周期由类决定。
成员变量指在类中没有使用static修饰的变量,生存周期由对象决定。
局部变量指定义在方法里的变量、方法的参数或者代码块里定义的变量,作用范围由{}决定。
java变量分为哪两种数据类型?
java中有8种基本数据类型
byte short int long float double boolean char
引用数据类型指除开基本数据类型外的数据类型,主要用来指向某个对象。
区别:引用数据类型存放的是数据所在的地址,而基本数据类型是直接存在数据的值。
java的拆箱和装箱
java的拆箱和装箱是基本数据类型和包装类在编译过程的自动相互转换。
Integer i = 10;
int ipm = i;
i 变量在自动装箱为Integer实例后,被指定给一个int类型的变量 ipm,会自动变成 int类型在指定给 ipm。
java的main方法
main方法是java程序执行的入口,是一个定义在类中的、公开的、静态的、无返回值的、参数为一个字符串数组的方法。
它的参数args与执行参数一一对应。
java中equal与==的区别
static class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public boolean equals(Object obj) {
Student stu = (Student) obj;
return this.name.equals(stu.name) && this.age == stu.age;
}
}
public static void main(String[] args) {
Student stu1 = new Student("lisi", 10);
Student stu2 = new Student("lisi", 10);
System.out.println(stu1.equals(stu2));
if (stu1.name==stu2.name) {
System.out.println("1");
}else {
System.out.println("2");
}
}
equal与==均为表示相等的意思。
= =运用在基本数据类型的时候,通过比较实际的只来判定是否相等,而用于比较引用数据类型的时候,是比较两个引用的地址是否相等,也就是是否指向同一个对象。
equal方法是 java.lang.Object 的方法,是所有java类都有的方法,它可以被程序员覆盖重写,通过自定义的方法来判定两份对象是否相等。对于字符串来说,它的equal方法用来比较字符串的字符序列是否完全相等。
java提供了哪几种循环?各自有什么特点
for循环
for(初始化;判断条件;条件变量处理’){
//循环代码
}
while循环
int i=1;
while(i<100){
System.out.println(i);
i++;
}
do……while 与while语句相似,不过条件在循环代码执行完之后才去判断
int i=1;
do{
System.out.println(i++);
}while(i<100);
//do……while语句的条件括号之后必须加上 ;
for循环适用于能确定循环次数的的循环结构
while语句则适合单条件的循环
而do……while 在执行某段代码之后,在循环比较适合。
java的三元运算符
表达式1?表达式2:表达式3
?之前是一个布尔表达式,只能返回true或false,如果表达式1返回的是true则执行表达式2,否则执行表达式3,并产生相应的返回值,并且,后两个表达式的返回类型要一致。作用代码比较简洁。
三元运算符可以被if else 语句代替
int a = 1;
int b = 2;
String rst = a>b? " a bigger than b " : " b bigger than a " ;
System.out.println(rst);
用if代替
String rst = null;
if(a>b){
rst="a bigger than b";
}else{
rst="b bigger than a";
}
java 注释
1.行注释
// ……注释内容
2.块注释
/*……注释内容*/
3.文档注释
/**…………*/
4、Annotation
严格意义上来讲,Annotation不算做注释,它最终会进入编译层,并对程序的结果产生影响。最普遍的作用旧式替代xml提供一些配置信息,例如,JPA、Spring等框架的配置信息可以通过Annotation来提供。
java类和对象有什么区别?
java类通过class关键字进行定义,代表一个抽象的集合例如,学生类,动物类等等,在它的里面可以定义各种属性和方法,它代表每一个实例的特定数据和动作。java虚拟机只对类加载一次,静态成员也只加载一次。
对象指某一个特定的抽象类的实例,对象通过类来创建。必须从属于某一个类,通过new关键字来创建,代表一个特定类型的实例,对象可以被多次创建。
类是一种抽象,对象是类的实现。
java中如何使用继承来重用代码
class Animal{
void breath(){
System.out.println("Breath......");
}
void cry(){
System.out.println("cry......");
}
}
class Cat extends Animal{
void cry(){
System.out.println("喵......"); //方法重写
}
}
Animal animal= new Animal();
Cat cat=new Cat();
animal.breath();
animal.cry();
cat.breath();
cat.cry();
动物和猫的呼吸方法(breath)一样,而喊叫(cry)方法不同。Cat类重写了cry方法。
java采用的是单继承,使用extend关键字。通过继承后子类拥有父类除开私有成员之外的所有成员,从而达到代码重用的目的。在继承过程中,可以通过方法的覆盖来实现多态,让子类拥有自己独特的方法实现方式。
java 的多态
通过继承来表现,子类继承父类的方法并且重写,就是多态的表现形式。
java静态成员的特点
类的静态成员通过static关键字修饰,主要包括静态成员变量,静态方法和静态代码块。
特点:
在类加载的时候就进行创建和初始化或执行代码
静态成员优先于对象存在
静态成员被所有对象所共享
静态成员多了一个中调用方式,可以被类名直接调用