Java 笔记之基础复习

1&
&&的区别

两个都有逻辑与的功能。但是所不同的是,当&两边的表达式不是boolean类型的时候,&具有位与的功能;&&是短路与,当判断到前一个表达式为false的时候,将不会再去计算后面的表达式。

如:

int i = 0;
       System.out.println((1==0)&(0==(i++)));
        System.out.println(i);

输出是:

false

1

但是,

 int i = 0;
       System.out.println((1==0)&&(0==(i++)));
        System.out.println(i);

输出是:

false

0

-----------------------------------------------------------------------------------------------------------------------------------------------

2、一个java源文件中是否可以包含多少个类?

回答:可以,但是只能有一个public的类,并且类名与文件名一致。

-----------------------------------------------------------------------------------------------------------------------------------------------

3、如何跳出多重嵌套循环?

两种方法:

(1)在循环前面可以设置一个标号,格式就是
名字+冒号,如

       ok:
           for (int i = 0; i <2;i++) {
for(int j = 0; j < 7; j++) {
if(m == 10) {
breakok;
}else{
m++;
}
}
}
           System.out.println(m);

(2)设置标志位,让外层循环收到内层循环的影响。

boolean breakFlag =false;
for (int i = 0; i< 2 && (!breakFlag); i++) {
for(int j = 0; j < 7; j++) {
if(j == 6) {
breakFlag= true;
break;
}else {
m++;
}
}
}

-----------------------------------------------------------------------------------------------------------------------------------------------

4switch能否用于byte
long
或者string上?

回答:switch(expression),expression只能是一个整数表达式或者枚举常量。整数表达式可以是int类型或者Integer包装类型。
byte,char,short
都可以隐含转换成int,因此这三个基本类型以及它们的包装类型都可以。long和string都不能。

-----------------------------------------------------------------------------------------------------------------------------------------------

5 short
m = 1;m = m+1;
m +=1; 
有区别么?都能通过编译么?

回答:m = m+1 ,由于1是int型,所以相加时结果自动提升到int类型,把int类型的结果赋给short类型的m,

编译不通过,必须加强制类型转换。而 m += 1;则不一样。+=是java规定的运算符,编译器内部会进行特殊处理,相当于内部已经是强制类型转换了。因此编译通过。

-----------------------------------------------------------------------------------------------------------------------------------------------

6  char
t= ‘张三‘;
这句有错么?

回答:有错,因为char类型变量使用
Unicode来存储字符,Unicode中包含了中文汉字,所以存储没问题,问题是,char类型变量本身是2个字节,一个Unicode是2个字节,因为char
只能存储一个汉字。

7、使用final
修饰一个变量的时候,是引用不能变,还是引用的对象不能变?

回答:引用变量不能变。如final StringBuilder sb = newStringBuilder("ddd");

如果是下一句是sb = new StringBuilder("cccc");是肯定出现编译错误的。但是可以执行如下语句:

sb.append("ddd") ;

 8==
equal的区别?

回答:==
是用于比较两个变量的值是不是相等,如基本类型或者
两个引用变量。 
也只能用==操作符,

不能用equal操作符。

equal操作符是比较两个独立对象的内容是不是相等。

             String a = new String("dd");
             String b = new String("dd");
             System.out.println(a==b);
             System.out.println(a.equals(b));

将会输出:

false

true

Java 笔记之基础复习

时间: 2024-08-06 11:51:33

Java 笔记之基础复习的相关文章

java笔记--多线程基础

多线程技术 在java中实现多线程技术有两种方式: 1.继承Thread类: 2.实现Runnable接口 这两种方法都需要重写run()方法:通常将一个新线程要运行的代码放在run()方法中(这是创建没有返回值线程的方法)由于java只支持单继承,当类已经继承有其他类时,只能选择实现Runnable接口在启动线程时需要使用Thread类的start()方法,而不是直接使用run()方法: 如: public static void function() { for (int i = 0; i

Think in Java 笔记_Chapter12_1_Exception基础_异常处理3_自定义异常以及抛出多个异常的处理

自定义异常 package cn.seven.shengsiyuan.exception; public class MyException extends Exception{//非运行时异常,因为只是继承了Exception并非RuntimeException public MyException() { // TODO Auto-generated constructor stub } public MyException(String message){ super(message);/

Think in Java 笔记_Chapter12_1_Exception基础_继承和RuntimeException处理1

java中异常 异常Exception 是我们可以处理的,可以进行补救,遇到异常就不会执行了? package cn.seven.shengsiyuan.exception; /* * Time:2015年04月05日12:24:58,清明节 * Location:501 * */ public class ExceptionDemo1 { public static void main(String[] args) { // TODO Auto-generated method stub in

Think in Java 笔记_Chapter20_1_Annocation基础语法

/2015年04月05日12:15:05 <张龙老师>_先看看java里面有什么注解(貌似没说注解能干什么)+++[具体的到后面再看完这几章节再做总结]-编译期间类型检查保护,在实际的源代码级别保存所有的信息,对源代码和字节码有强大的检查和操作能力 @Override-复写或者覆盖父类的方法时候需要加上注解 >>>编程思想中说 把isohi当前的方法覆盖超类中方法,方法签名?? @Deprecated-有些方法虽然仍然有效,但是感觉过时了不想再被别人使用,可以加上这个在调用方

Java笔记之基础语法

/* 1 标识符 1.1. 在程序中所定义的一些名称,由26个英文字母大小写,数字0-9,符号:_$组成 1.2 定义合法的标识符规则: a.数字不可以开头 b.不可以使用关键字 c.Java中严格区分大小写,在起名字时,为了提高阅读性,尽量起有意义的名字. 2 常量与变量 2.1 常量:常量表示不能改变的数值 2.2. Java中的常量分类: a.整数常量.所有整数 b.小数常量.所有小数 c.布尔型常量.较为特有,只有2个数值.true false d.字符常量.将一个数字字母或者符号用单引

Java笔记 - 线程基础知识

前言 进程是一个执行中程序的实例,是操作系统进行资源分配和调度的一个独立单元.线程是进程中一个单一的程序控制流,是 CPU 调度和分派的基本单元.进程在执行时拥有独立的内存空间,进程中的线程可以共享进程的内存空间.在 Java 的世界中,进程可以拥有多个并发执行的线程,多线程是实现并发任务的方式. 线程创建和启动 1. 实现 java.lang.Runnable 接口 定义线程执行的任务,需要实现 Runnable 接口并编写 run 方法. public interface Runnable

.Net学习笔记----2015-07-09(基础复习和练习06)

冒泡排序, 做了两遍 // 1, 3, 4, 2, 6, 8, 7, 9, 0, 5 //10个元素,从第一个开始,和数组中的每一个元素比较, //如果nums[0]>nums[1]则两个元素交换位置,依次类推直到nums[9] //也就是要比较9次 //剩余1个元素就一定是最小的(升序举例) for (int i = 0; i < nums.Length - 1; i++) { //第一个数比较完以后就说明这个数不必再比较,那么j-1-i for (int j = 0; j < num

.Net学习笔记----2015-07-08(基础复习和练习01)

1.编写一段程序,运行时向用户提问“你考了多少分?(0~100)”,接受输入后判断其等级并显示出来.判断依据如下:等级={优 (90~100分):良 (80~89分):中 (60~69分):差 (0~59分):} 尼玛,学了后面忘了前面, 方法的使用上纠结了十几分钟才想起来怎么弄,判断条件又搞了十几分钟才转明白.是不是忒笨了. 最后想把代码写得结实一些,用try...catch结果搞了我一个多小时,总算是看起来貌似没有啥问题了. 下面贴上改来改去最终完成的代码: 1 static void Ma

.Net学习笔记----2015-07-10(基础复习和练习09)

1.请将字符串数组{ "中国", "美国", "巴西", "澳大利亚", "加拿大" }中的内容反转.然后输出反转后的数组.不能用数组的Reverse()方法. static void Main(string[] args) { string[] strs = { "中国", "美国", "巴西", "澳大利亚", "