1.java整形变量078:在java数字里数字表达式前面加上0表示8进制,因为8进制里表示数字只有0-7,所以这里的表达式有错误。相对而言,077就是合法的,转换成10进制就是63(7*8+7=63)。

2.以下程序错误的是:

  short s = 1 ; s = s + 1 ;

  这里s+1表示为int类型,不能直接赋值为short

一、程序结构

  1.什么时候用assert?

  assert是断言,断言是一个包含布尔表达式的语句,在执行这个语句的时候,假定该表达式为True,如果表达式计算为false,那么系统会报告一个Assertionerror,用于调试的目的。

assert(a>0);    //throws an Assertionerror if a<=0
断言有以下两种形式:
(1)assert Expression1;
(2)assert Expression1:Expression2;

  Expression1应该总是产生一个布尔值。Expression2可以是一个值的任何表达式,这个值用于生成更多调试信息的String消息。

  断言在默认的情况下是禁用的,在编辑的时候需要启用断言。

  2.main方法必须是public的,static void main(String[] args)

二、运算符

  1.以下代码的输出结果是:()

public class Test4 {
public static void main(String[] args) {
int a = 5;
System.out.println("value is "+((a<5)?10.9:9));
} }
//输出结果是9.0

  2.以下代码输出结果是:

 public class Test4 {
public static void main(String[] args) {
char x = 'x';
int i = 10 ;
//第一个输出的x被提升为int型了,因为i是int型,x的值为120,所以第一个值为120
System.out.println(false?i:x);
//当后两个表达式有一个是常量表达式的时候,另外一个是类型T的时候,,而常量表达式可以被T类型表示的时候,输出的结果是T类型
System.out.println(false?10:x);
} } 最后的结果是120 x

    (1)int i =10 中i是一个变量,因此第一个输出的x被提升到了int型,因为i是int型,所以第一个输出的x也被提升到了int型,而x的int值为120,所以第一个输出为120

    (2)表达式false?10:x,当后面两个表达式有一个是常量表达式时,另外一个类型是T时,而常量表达式可以被T表示的时候,输出结果就是T类型,所以本题中最后的输出时T。

  3.What does the following program print?(先面程序运行的结果是多少?)

 public class Test5 {
public static void main(String[] args) {
int m = 5 ;
int n = 5 ;
if((m!= 5) && (n++==5)){}
System.out.println("a."+n); m=n=5;
if((m!=5) &(n++==6)){}
System.out.println("b."+n); m=n=5;
if((m==5) || (n++==5)){}
System.out.println("c."+n); m=n=5;
if((m==5) || (n++==6)){}
System.out.println("d."+n); int a = 1,b =2 ;
int c = a&b;
System.out.println("a&b"+c);
} }

    (1)位运算符&、|、 ^

    (2)&、|逻辑运算与&&、||逻辑运算的重要区别是:前者是非短路运算,后者是短路运算,

      对于&&而言,凡是前面是false的,那后面的就不用再做了,对于||而言,如果前面的是true,那么后面的就不用在做了,这就是所谓的短路运算。相对而言,布尔运算符就没有这个特点,无论&,|前面是true还是false,运算法后面还要进行计算

    (3)代码分析:

1      int m = 5 ;
int n = 5 ;
if((m!= 5) && (n++==5)){}
System.out.println("a."+n);

    对于这段代码而言,m=5,为false,所以前面的就已经被短路了,后面的就不需要进行计算了,n=5。

         m=n=5;
if((m!=5) &(n++==6)){}
System.out.println("b."+n);

    对于上面的这段代码而言,m=n=5,(m!=5)为false,中间的逻辑运算符是&(非短路),(n++==5),后面的仍然需要进行计算,所以后面的n=6,

1      m=n=5;
if((m==5) || (n++==5)){}
System.out.println("c."+n);

    对于上面的代码而言,m=n=5,(m==5)这段代码为true,中间的逻辑运算符为||(短路运算符),后面的代码计算不需要再进行下去了,所以后面的n=5

      m=n=5;
if((m==5) | (n++==6)){}
System.out.println("d."+n);

    对于上面的这段代码,m= n =5,(m==5)为true,但是n++==6这段代码会继续执行,所以n=6。所以答案是5,6,5,6,0

java知识点复习(1):的更多相关文章

  1. Java知识点复习

    总结下java的知识点 final 关键字-方法:不能被子类重写(override)-变量:不能被修改-类:不可以被继承,派生子类 finally 关键字与try/catch语句配合使用,即使有异常抛 ...

  2. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  3. Spring知识点复习

    Spring知识点复习 一.专业术语 侵入式设计 引入框架,对现有的类的结构有影响,即需要实现或继承某些特定类.如:Struts框架 非侵入式设计 引入框架,对现有的类结构没有影响.如:Hiberna ...

  4. 学Android开发,入门语言java知识点

    学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...

  5. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  6. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  7. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  8. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  9. 给Java新手的一些建议----Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

随机推荐

  1. 备忘录:“#ifdef __cplusplus extern "C" { #endif”的定义

    看一些程序的时候老是有“#ifdef __cplusplusextern "C" {#endif”的定义,搞搞清楚是怎么回事: Microsoft-Specific Predefi ...

  2. Python将函数放入模块

    函数可以将通用的代码封装起来,便于其他程序或者方法调用.将函数存放在文件中,这个文件被称为模块.将函数存储在独立的模块中,可与其他程序员共享这些文件而不是整个程序. fun.py def say_hi ...

  3. WOE1-Feature Selection 相关:一个计算WOE和Information Value的python工具

    python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...

  4. Get web site source code

    public String getPageSource() { StringBuffer sb = new StringBuffer(); try { // 构建一URL对象 URL url = ne ...

  5. 图片加载框架之ImageLoader

    Android开发中,多少会接触到异步加载图片,或者加载大量图片的问题,而加载图片我们常常会遇到许多的问题,比如说图片的错乱,OOM等问题,对于这些问题解决起来会比较吃力,比较著名的就是Univers ...

  6. 使用 certbot 自动给 nginx 加上 https

    概述 目前,Let's Encrypt 可以算是最好用的 https 证书申请网站了吧.而 certbot 可以算是它的客户端,能够很方便的自动生成 https 证书.我把自己的使用经历记录下来,供以 ...

  7. 如何在gradle项目中添加额外非开源jar包并提交代码

    前提:项目开发中,遇到一个地方需要用到公司自定义的jar包,然后要放到代码里又不方便提交到私服 具体实施: 首先在项目中增加一个 libs目录,然后把这种非开源又不在私服上的jar包扔进去, 然后打开 ...

  8. elk、kafka、zookeeper 安装

    .elk解释 ELK分别是Elasticsearch.Logstash.Kibana三个开源框架缩写 Elasticsearch 开源分布式搜索引擎,提供存储.分析.搜索功能.特点:分布式.基于rea ...

  9. localStorage基本了解及使用

    以下内容来自: https://www.cnblogs.com/st-leslie/p/5617130.html  感谢大佬的分享 一.什么是localStorage.sessionStorage 在 ...

  10. 【.NET】关于.NET前后台提示框的那点事

    前言 关于提示框,或多或少都用到过,提示框常见方式两种:js原生alert() 和 div模拟弹层:下面以一个常见的需求业务场景来展现提示框的那点事: 正文内容 客户:需求方: 小白:实现方(全权负责 ...