注意: 这是编译可以通过的,会打印出true;

public static void main()
{
int x=0;
if(x=1)
{
System.out.print(x);
}
}

注意:这是编译不通过的

为什么会这样?

JAVA的赋值运算是有返回值的,赋了什么值,就返回什么值

例一:public static void main(){boolean x=false;if(x=true){System.out.print(x);}}注意:这是编译可以通过的,会打印出true;例二:public static void main(){int x=0;if(x=1){System.out.print(x);} ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如: ${sessionScope.user[data]} data 是一个变量 EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围 名称为 username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、 Application范围查找。 假如途 找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时, 就回传null。 属性范围在EL 的名称 Page PageScope Request RequestScope Session SessionScope Application ApplicationScope 4) 1--EL 表达式 用${}表示,可用在所有的HTML和JSP标签 作用是代替JSP页面 复杂的 JAVA 代码. 2--EL 表达式 可操作常量 变量 和隐式对象. 最常用的 隐式对象有${param}和${paramValues}. ${param}表示返回请求参数 单个字符串的值. ${paramValues}表示返回请求参数的一组 值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话 范围内的变量.applicationScope表示应用范围的变量. 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁 止.JSP2.0 默认的启用EL语言. 4-- EL语言可显示 逻辑 表达式 如${true and false}结果是false 关系 表达式 如${5>6} 结 果是false 算术 表达式 如 ${5+5} 结果是10 5--EL 的变量搜
1. Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法。 1、一个". java "源文件 是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。 2、 Java 有没有goto? java 的保留字,现在没有在 java 使用。 3、说说&和&&的区别。 &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的 表达式 的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 &&还具有短路的功能,即如果第一个 表达式 为false,则不再计算第二个 表达式 ,例如,对于if(str != null && !str.equals(“”)) 表达式 ,当str为null时,后面的 表达式 不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长 &还可以用作位运算符,当&操作符两边的 表达式 不是 boolean 类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。 备注:这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富。 4、在 JAVA 如何跳出当前的多重嵌套循环? 在 Java ,要想跳出多重循环,可以在外面的循环 语句 前定义一个标号,然后在里层循环体的代码 使用带有标号的break 语句 ,即可跳出外层循环。例如, for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { System.out.println(“i=” + i + “,j=” + j); if(j == 5) break ok; 另外,我个人通常并不使用标号这种方式,而是让外层的循环条件 表达式 的结果可以受到里层循环体代码的控制,例如,要在二维数组 查找到某个数字。 int arr[][] = {{1,2,3},{4,5,6,7},{9}}; boolean found = false; for(int i=0;i<arr.length && !found;i++) { for(int j=0;j<arr[i].length;j++){ System.out.println(“i=” + i + “,j=” + j); if(arr[i][j] == 5) { found = true; break; 5、switch 语句 能否作用在byte上,能否作用在long上,能否作用在String上? 在switch(expr1) ,expr1只能是一个整数 表达式 或者枚举常量(更大字体),整数 表达式 可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long类型不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它不能作用于swtich 语句 ,String类型在JDK7之前不可以,而在JDK7之后可以。 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升 表达式 的类型,所以结果是int型,再 赋值 给short类型s1时,编译器将报告需要强制转换类型的错误。 对于short s1 = 1; s1 += 1;由于 += 是 java 语言规定的运算符, java 编译器会对它进行特殊处理,因此可以正确编译。 7、char型变量 能不能存贮一个 文汉字?为什么? char型变量是用来存储Unicode编码的字符的,unicode编码字符集 包含了汉字,所以,char型变量 当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode编码字符集 ,那么,这个char型变量 就不能存储这个特殊汉字。补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。 备注:后面一部分回答虽然不是在正面回答题目,但是,为了展现自己的学识和表现自己对问题理解的透彻深入,可以回答一些相关的知识,做到知无不言,言无不尽。
表达式 语句 不是 赋值 或调用是指 表达式 语句 不仅不包含 赋值 语句 也不包含函数调用。 表达式 语句 通常是对某个值进行求值并返回结果,但是并不会将结果保存到变量 或者将其作为函数的参数。 举个例子,以下是几个 表达式 语句 的例子: 1. `2 + 3`:这是一个简单的加法 表达式 ,它会求出 2 加 3 的结果 5。 2. `a > b`:这是一个比较 表达式 ,它会比较变量 a 和 b 的大小,如果 a 大于 b 就返回 true,否则返回 false。 3. `foo()`:这是一个函数调用 表达式 ,它会调用名为 foo 的函数并返回函数的返回值。 上述的三个 表达式 都是 表达式 语句 ,但都不是 赋值 或调用 语句 赋值 语句 是指将值赋给变量的 语句 ,例如 `x = 2 + 3`,而调用 语句 是指调用函数并使用函数的返回值,例如 `result = foo()`。