java
基础相关问题总结
什么是计算机程序?
程序一词来自生活,通常指完成某些事务的一种既定方式和过程
在日常生活中,可以将程序看成对一系列动作的执行过程的描述
一系列有序指令的集合
什么是指令
我们可以把每一行代码看作一条指令
Java可以编写哪两类程序?
开发桌面应用程序
银行软件、商场结算软件
开发面向Internet的应用程序
网上数码商城、阿里巴巴、易趣网
使用记事本开发Java程序的步骤是什么?
touch javaname.java vim javaname.java # 编写即可 java javaname.java # 运行java
java 的运行原理
java–>通过编译–>class–>运行java 程序–> 电脑上运行
Java程序的基本框架是什么?
JavaSE:Java Platform,Standard Edition 个人学习版
JavaEE:Java Platform,Enterprise Edition 企业版
如何在控制台输出一条信息?
System.out.println("hello world") //换行输出
System.out.print("hello world") //不换行输出
如何在控制台输入一条信息?
import java.util.Scanner; Scanner newScanner = new Scanner(System.in); newScanner.nextInt(); // 输出int型数据 newScanner.next(); // 输出string型数据 newScanner.nextLine(); //以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。可以获得空白。 newScanner.hasNextXxx() // 判断是否是xxx类型的数据 boolean 输出类型
next() 与 nextLine() 区别
next():
- 1、一定要读取到有效字符后才可以结束输入。
- 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
- 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next() 不能得到带有空格的字符串。
nextLine():
- 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- 2、可以获得空白。
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:
import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 从键盘接收数据 int i = 0; float f = 0.0f; System.out.print("输入整数:"); if (scan.hasNextInt()) { // 判断输入的是否是整数 i = scan.nextInt(); // 接收整数 System.out.println("整数数据:" + i); } else { // 输入错误的信息 System.out.println("输入的不是整数!"); } System.out.print("输入小数:"); if (scan.hasNextFloat()) { // 判断输入的是否是小数 f = scan.nextFloat(); // 接收小数 System.out.println("小数数据:" + f); } else { // 输入错误的信息 System.out.println("输入的不是小数!"); } scan.close(); } }
什么是变量?
在程序运行过程中其中的值变化的量叫变量
如何声明变量、给变量赋值和使用变量?
类型 变量名 = 值;
Java中常用的数据类型有哪些?
发生自动类型转换的条件是什么?
数据类型的转换是在所赋值的数值类型和被变量接收的数据类型不一致时发生的,它需要从一种数据类型转换成另一种数据类型。 数据类型的转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。 如果以下 2 个条件都满足,那么将一种类型的数据赋给另外一种类型变量的时,将执行自动类型转换(automatic type conversion)。 当以上 2 个条件都满足时,拓宽转换(widening conversion)发生。 例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。 在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。
如何进行类型转换
自动/隐式转换
如果以下 2 个条件都满足,那么将一种类型的数据赋给另外一种类型变量的时,将执行自动类型转换(automatic type conversion)。
- 两种数据类型彼此兼容
- 目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)
当以上 2 个条件都满足时,拓宽转换(widening conversion)发生。例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。
在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。自动转换的规则是从低级类型数据转换成高级类型数据。转换规则如下:
- 数值型数据的转换:byte→short→int→long→float→double。
- 字符型转换为整型:char→int。
以上数据类型的转换遵循从左到右的转换顺序,最终转换成表达式中表示范围最大的变量的数据类型。
显式/强制转化
尽管自动类型转换是很有帮助的,但并不能满足所有的编程需要。例如,如果你需要将 double 型的值赋给一个 int 型的变量,你将怎么办?
这种转换不会自动进行,因为 double 型的变化范围比 int 型的要小。这种转换有使成为“缩小转换”,因为你肯定要将源数据类型的值变小才能适合目标数据类型。
所以当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。其语法格式如下:
(type)variableName
其中,type 为 variableName 要转换成的数据类型,而 variableName 是指要进行类型转换的变量名称,强制转换的实例
说出已学过的数据类型有哪些?
举例说明已学过的运算符有哪些?
if和if-else选择结构执行的顺序是什么?
描述几种分支结构的语法和执行过程?
什么情况下会使用多重if选择结构?
多重if选择结构和switch选择结构的区别和适用场合是什么?
java学习笔记(六)-控制流语句-条件判断_void.bug的博客-CSDN博客
一句话总结:
if 适用于boolean表达式条件
switch 适用于字符比配表达式条件
循环结构的特点是什么?
while循环和do-while循环有什么区别?
for循环结构如何执行?
在循环中使用什么方式跳出或终止循环?
java学习笔记(七)-控制流语句-循环_void.bug的博客-CSDN博客
break
break与continue之间的差别是什么?
java学习笔记(七)-控制流语句-循环_void.bug的博客-CSDN博客
break 结束循环
continue 结束本次循环
数组有哪些特点?
数组是一个变量,存储相同数据类型的一组数据
使用数组的四个步骤?
标识符:数组的名称,用于区分不同的数组
数组元素:向数组中存放的数据
元素下标:对数组元素进行编号
元素类型:数组元素的数据类型
如何实现数组的排序?
arrays.score(arrayname);
基本数据类型和引用数据类型在内存分配上有什么不同?
基本数据类型都是存放在栈中。 引用数据类型基本上就是数据存放在堆中,在栈中存放一个一个引用,或者一个首地址。 你得找本关于java虚拟机的书才能看个大概。 我感觉自己没有讲明白的。 你对这个回答的评价是? 内存从大的方面可分为栈和堆。 java中的定义数据类型是告诉内存需要分配多少空间给某个变量使用。 java中的8种基本类型是在栈内存中开空间,其声明的基本类型变量的生命周期同变量规定的生命周期 [离此定义的变量最近的大括号所对应的另一大括号之间的生命周期范围,过了范围则无效]。
oo是什么
object(对象) oriented(面向…)
oop是什么
面向对象编程
创建类的步骤
1.写类名 public class 类名{}
2.写属性 数据类型 属性名;
3.写方法 public void 方法名(){}
类的无参方法
有返回值与无返回值
创建类的无参方法
1)无返回值
public void 方法名(){
方法体
}
2)有返回值
public 返回值类型 方法名(){
//代码
return f返回值;
}
无参方法的调用方法
1)调用无返回值:
对象名.方法名();
2)调用有返回值:
a)使用变量接收
数据类型 变量名=对象名.方法名();
b)不使用变量接收
与调用无返回值方法相同。
成员变量和局部变量的区别
1.作用域不同:
成员变量:在整个类中都是可见的
局部变量:只在定义它的方法中生效
2.初始值不同:
成员变量:有初始值
局部变量:没有初始值
3.优先级不同;
当成员变量与局部变量重名时,优先调用局部变量;
注:此种情况下可以使用this关键字调用成员变量;
文档标记javadoc
定义有参返回
public 返回值类型 方法名(参数类型,参数名){
//代码
}
调用方法
与无参是相同 对象名。方法名(实参)
备注:
调用时传递的参数叫实参
方法定义时的参数叫形参
形参列表和实参列表:个数一致 类型一致 顺序一致