马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
根本语法
数据范例 Java有哪些数据范例 界说:Java语言是强范例语言,对于每一种数据都界说了明白的具体的数据类 型,在内存中分配了差异 巨细的内存空间。 分类: 根本数据范例 Java源代码---->编译器---->jvm可实验的Java字节码(即假造指令)---->jvm---->jvm中 表明器-----> 呆板可实验的二进制呆板码---->步伐运行。数值型 整数范例(byte,short,int,long) 浮点范例(float,double) 字符型(char) 布尔型(boolean) 引用数据范例 类(class) 接口(interface) 数组([]) Java根本数据范例图
switch 是否能作用在 byte 上,是否能作用在 long 上,是否 能作用在 String 上 在 Java 5 从前,switch(expr)中,expr 只能是 byte、short、char、int。从 Java5 开始,Java 中引入 了罗列范例,expr 也可以是 enum 范例,从 Java 7 开始,expr 还可以是字符串(String),但是长整 型(long)在现在全部的版 本中都是不可以的 用最有服从的方法盘算 2 乘以 8 2 << 3(左移 3 位相称于乘以 2 的 3 次方,右移 3 位相称于除以 2 的 3 次 方)。 Math.round(11.5) 便是多少?Math.round(-11.5) 便是多少 Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍 五入的原理是在参数上加 0.5 然后举行下取整。 loat f=3.4;是否准确 不准确。3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于 下转型(down-casting, 也称为窄化)会造成精度丧失,因此必要欺凌范例转 换float f =(float)3.4; 大概写成 float f =3.4F;。 short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗 对于 short s1 = 1; s1 = s1 + 1;由于 1 是 int 范例,因此 s1+1 运算结果也是 int型,必要欺凌转换范例才 能赋值给 short 型。 而 short s1 = 1; s1 += 1;可以准确编译,由于 s1+= 1;相称于 s1 = (short(s1 + 1);其 中有隐含的欺凌范例转换。编码
Java语言接纳何种编码方案?有何特点? Java语言接纳Unicode编码标准,Unicode(标准码),它为每个字符制定了一 个唯一的数值,因此在 任何的语言,平台,步伐都可以放心的使用。 表明
什么Java表明 界说:用于表明阐明步伐的笔墨 分类 单行表明 格式: // 表明笔墨 多行表明 格式: /* 表明笔墨 */ 文档表明 格式:/** 表明笔墨 */ 作用 在步伐中,尤其是复杂的步伐中,得当地到场表明可以增长步伐的可读性,有利 于步伐的修改、调试和 交换。表明的内容在步伐编译的时间会被忽视,不会产生 目标代码,表明的部门不会对步伐的实验结果 产生任何影响。 注意事项:多行和文档表明都不能嵌套使用。 访问修饰符 访问修饰符 public,private,protected,以及不写(默认)时的 区别 界说:Java中,可以使用访问修饰符来掩护对类、变量、方法和构造方法的访 问。Java 支持 4 种差异的 访问权限。 分类: private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部 类) default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用 任何修饰符。使用 对象:类、接口、变量、方法。 protected : 对同一包内的类和全部子类可见。使用对象:变量、方法。 注意: 不能修饰类(外部 类)。 public : 对全部类可见。使用对象:类、接口、变量、方法 访问修饰符图运算符
&和&&的区别 &运算符有两种用法:(1)按位与;(2)逻辑与。 &&运算符是短路与运算。逻辑与跟短路与的差异黑白常巨大的,固然二者都要 求运算符左右两头的布 尔值都是true 整个表达式的值才是 true。&&之以是称 为短路运算,是由于假如&&左边的表达式的值是 false,右边的表达式会被直 接短路掉,不会举行运 算。注意:逻辑或运算符(|)和短路或运算符(||)的差异也是云云。 关键字
Java 有没有 goto goto 是 Java 中的生存字,在现在版本的 Java 中没有使用。 final 有什么用? 用于修饰类、属性和方法; 被final修饰的类不可以被继承 被final修饰的方法不可以被重写 被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引 用指向的内容是可以改变的 final finally finalize区别 final可以修饰类、变量、方法,修饰类表现该类不能被继承、修饰方法表现该方法不能被重写、修 饰变量表现该变量是一个常量不能被重新赋值。 finally一样平常作用在try-catch代码块中,在处理惩罚非常的时间,通常我们将肯定要实验的代码方法 finally代码块中,表现不管是否出现非常,该代码块都会实验,一样平常用来存放一些关闭资源的代 码。 finalize是一个方法,属于Object类的一个方法,而Object类是全部类的父类,该方法一样平常由垃圾 接纳器来调用,当我们调用System.gc() 方法的时间,由垃圾接纳器调用finalize(),接纳垃圾,一 个对象是否可接纳的末了判定。 this关键字的用法 this是自身的一个对象,代表对象自己,可以明白为:指向对象自己的一个指 针。 this的用法在java中大要可以分为3种: 1.平凡的直接引用,this相称于是指向当前对象自己。 2.形加入成员名字重名,用this来区分: 3.引用本类的构造函数- 1 public Person(String name, int age) {
- 2 this.name = name;
- 3 this.age = age;
- 4 }
- 1 class Person{
- 2 private String name;
- 3 private int age;
- 4
- 5 public Person() {
- 6 }
- 7
- 8 public Person(String name) {
- 9 this.name = name;
- 10 }
- 11 public Person(String name, int age) {
- 12 this(name);
- 13 this.age = age;
- 14 }
- 15 }
复制代码 super关键字的用法 super可以明白为是指向自己超(父)类对象的一个指针,而这个超类指的是离 自己迩来的一个父类。 super也有三种用法: 1.平凡的直接引用 与this雷同,super相称于是指向当前对象的父类的引用,如许就可以用 super.xxx来引用父类的成员。 2.子类中的成员变量或方法与父类中的成员变量或方法同名时,用super举行区 分 3.引用父类构造函数 super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。 this(参数):调用本类中另一种情势的构造函数(应该为构造函数中的第一条语句)。- 1 class Person{
- 2 protected String name;
- 3
- 4 public Person(String name) {
- 5 this.name = name;
- 6 }
- 7
- 8 }
- 9
- 10 class Student extends Person{
- 11 private String name;
- 12
- 13 public Student(String name, String name1) {
- 14 super(name);
- 15 this.name = name1;
- 16 }
- 17
- 18 public void getInfo(){
- 19 System.out.println(this.name); //Child
- 20 System.out.println(super.name); //Father
- 21 }
- 22
- 23 }
- 24
- 25 public class Test {
- 26 public static void main(String[] args) {
- 27 Student s1 = new Student("Father","Child");
- 28 s1.getInfo();
- 29
- 30 }
- 31 }
复制代码 this与super的区别 super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐蔽的父类中成员数据或函 数,基类与派生类中有雷同成员界说时如:super.变量名 super.成员函数据名(实参) this:它代表当前对象名(在步伐中易产生二义性之处,应使用this来指明当前对象;假如函数的 形加入类中的成员数据同名,这时需用this来指明成员变量名) super()和this()雷同,区别是,super()在子类中调用父类的构造方法,this()在本类内调用本类的其 它构造方法。 super()和this()均需放在构造方法内第一行。 只管可以用this调用一个构造器,但却不能调用两个。 this和super不能同时出现在一个构造函数内里,由于this一定会调用别的的构造函数,别的的构造 函数一定也会有super语句的存在,以是在同一个构造函数内里有雷同的语句,就失去了语句的意 义,编译器也不会通过。 this()和super()都指的是对象,以是,均不可以在static环境中使用。包罗: static变量,static方法,static语句块。 从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。 static存在的重要意义 static的重要意义是在于创建独立于具体对象的域变量大概方法。以致于纵然没有创建对象,也能使用属 性和调用方法! static关键字尚有一个比力关键的作用就是 用来形成静态代码块以优化步伐性能。static块可以置于类中 的任何地方,类中可以有多个static块。在类初次被加载的时间,会按照static块的次序来实验每个static 块,而且只会实验一次。为什么说static块可以用来优化步伐性能,是由于它的特性:只会在类加载的时 候 实验一次。因此,许多时间会将一些只必要举行一次的初始化操纵都放在static代码块中举行。 static的独特之处 1、被static修饰的变量大概方法是独立于该类的任何对象,也就是说,这些变量和方法不属于任何一个 实例对象,而是被类的实例对象所共享。 怎么明白 “被类的实例对象所共享” 这句话呢?就是说,一个类的静态成员,它是属于大伙的【大 伙指的是这个类的多个对象实例,我们都知道一个类可以创建多个实例!】,全部的类对象共享 的,不像成员变量是自个的【自个指的是这个类的单个实例对象】…我以为我已经讲的很普通了, 你明白了咩? 2、在该类被第一次加载的时间,就会去加载被static修饰的部门,而且只在类第一次使用时加载并举行 初始化,注意这是第一次用就要初始化,反面根据必要是可以再次赋值的。 3、static变量值在类加载的时间分配空间,以后创建类对象的时间不会重新分配。赋值的话,是可以任 意赋值的! 4、被static修饰的变量大概方法是优先于对象存在的,也就是说当一个类加载完毕之后,即便没有创建 对象,也可以去访问。 static应用场景 由于static是被类的实例对象所共享,因此假如某个成员变量是被全部对象所共享的,那么这个成员变量 就应该界说为静态变量。 因此比力常见的static应用场景有:1、修饰成员变量 2、修饰成员方法 3、静态代码块 4、修饰类【只能修饰内部类也就是静态内部类】 5、静态导包 static注意事项 1、静态只能访问静态。 2、非静态既可以访问非静态的,也可以访问静态的。 流程控制语句
break ,continue ,return 的区别及作用 break 跳出总上一层循环,不再实验循环(竣事当前的循环体)continue 跳出本次循环,继承实验下次循 环(竣事正在实验的循环 进入下一个循环条件) return 步伐返回,不再实验下面的代码(竣事当前的方法 直接返回) 在 Java 中,怎样跳出当前的多重嵌套循环 在Java中,要想跳出多重循环,可以在外貌的循环语句前界说一个标号,然后在里层循环体的代码中使 用带有标号的break 语句,即可跳出外层循环。比方:- 1 public static void main(String[] args) {
- 2 ok:
- 3 for (int i = 0; i < 10; i++) {
- 4 for (int j = 0; j < 10; j++) {
- 5 System.out.println("i=" + i + ",j=" + j);
- 6 if (j == 5) {
- 7 break ok;
- 8 }
- 9
- 10 }
- 11 }
- 12 }
复制代码
|