Java基础的一些问题(二):

1.简述对JVM,JRE,JDK的理解。
            -jvm,全称虚拟机,jvm是整个java实现跨平台的 最核心的部分,
            所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,
            也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,
            由虚拟机将程序解 释给本地系统执行。
            -jre是指java运行环境。光有JVM还不能成功执行class文件,
            因为在解释class的时候JVM需要调用解释所需要的类库lib。
            -jdk是java开发工具包,jdk中往往包含jre
 2.简述环境变量path和classpath的作用?
            -path,指定命令搜索路径 在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。
                    我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。
            -classpath,指定类搜索路径 包含了一个或多个目录,它们作为一种特殊的“根”使用,从这里展开对.class 文件的搜索。从那个根开始,解释器会寻找包名,
                        并将每个点号(句点)替换成一个斜杠,从而生成从CLASSPATH 根开始的一个路径名
                        如你引入了import Java util *,这个包中编译器要去寻找这个类在哪个地方,设置的clsspath设置了jdk的目录就会去寻找这个目录
3.java语言是否区分大小写? javacjava的作用?
            -java语言区分大小写
            -javac:编译Java文件为class类文件
            -java:执行class文件---》run
4.简述main方法(是什么,什么特点,怎么用,何时用? )
            -是类中的一段代码,可以让程序独立运行
            -写在类中,格式固定, 一个类中只能有一个main方法,main方法可以让类单独运行

5.熟记java相关关键字 什么是关键字?有什么特点?
     答案: 关键字又叫保留字,java中有特别意义的标识符,
     所有的关键字都是小写字母
      
6.什么是注释?注释分为几种?注释有什么作用?
           答案:单行注释 多行注释(块注释) javadoc注释
           方便阅读和理解程序
7. 什么是标识符?由哪些部分组成?常见的命名规则有哪些?
      答案:     -标识符由字母、数字、下划线“_”、美元符号“$”或者人民币符号“¥”组成,并且首字母不能是数字。
             -标识符不能是保留字和关键字
             -标识符没有长度限制。
             -标识符对大小写敏感
     
8.以下标识符错误的原因是什么,详细总结java标识符组成及规范
      class、12java、goto、java@1、1张三、¥10
     答案:class为关键字,标识符不能以数字开头
     
9.(Java 程序的编译与运行)假设有如下:
        package com.corejava.chp1;
        pub lic class HelloWorld{
           public static void main(String args[]){
               System.out.println("Hello World");
            }
        }
        问:
        1)假设这个代码存在 hello.java 文件中,那这个程序能够编译通过?为什 么?如果编译不通过,应该何改进

        答案:不能,public关键字出现空格,编译器无法识别,消除空格即可
        
        2)如果放置在桌面上,怎么编译执行
        答案:命令行使用javac命令编译源文件

 
10.什么是常量?常量的分类?字面值常量表现形式有哪些?
     答案:常量就是定义之后不会再发生改变的数据,常量可以分为六种:字符常量,字符串常量,整数常量,小数常量,布尔常量,空常量。-字符串,数字
    
11.Java中的数据类型分几类?基本数据类型有哪些?
     答案:八大类,byte,short,long,int,double,float,char,boolean
     
12.数据类型转换: 隐式转换: 强制转换:
     答案: 隐式转换 byte b=120; int i=b;
              强制转换  int i=123; String str=(String)i; 
     
13.第一题: byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句是编译失败的呢?为什么呢?
     答案:b=b1+b2;必须强制转换才可以使用
14.  第二题: byte by = 130;有没有问题?有问题如何解决?结果是多少呢?
      答案:有问题,130超出了byte数据类型的范围 二进制转换补码显示10000010 ,十进制为-126
15.常见的算术运算符有哪些? +运算符的作用有哪些? 除法和取余的区别? ++和--的使用规则? 
     *答案:算术运算符 + = * / % 逻辑运算符 && || ! 关系运算符 == > < >= <= != 位运算符 & | >> <<
             +运算符 进行算数运算, 连接字符串
              除法:任何两个整数进行相除其结果一定为整数,如果想得到小数必须使其任何一个为小数
             取余:取余运算的结果是余数.其结果只与运算符左边的数值有关与右边无关.任何整数%2其结果不是0就是1
            ++表示自增1 --表示自减1 ++a表示先+1在运算,a++表示先运算再+1,--同++
16.常见的赋值运算符有哪些? +=运算的作用是什么? 扩展的赋值运算符有什么特点? 
      答案:= += -= /= *= ,
             +=表示左边和右边相加的结果赋值给左边, 
              存在强制转换,可能会丢失精度

17.short s = 1; s = s + 1;有没有问题?如果有怎么解决? short s = 1; s += 1;有没有问题?如果有怎么解决?
     * 答案:  s=s+1;无法编译通过,s会被当做int类型处理,需要强转。
18.常见的比较运算符有哪些? 比较运算符的结果有什么特点? 
      答案: >  <  =  >=  <=  ==  !=  
            结果往往是一个逻辑值,是布尔类型
   
19.常见的逻辑运算符有哪些? &和&&的区别是什么? |和||的区别是什么? 
      答案: 逻辑运算符 && || !
           &也用作位运算符,表示位与 |表示位或 属于位运算,位运算不具有短路功能 当&两边的操作数不是boolean的时候表示按位运算,&时要对所有的条件进行判断,所以会对后面的条件进行判断,所以会报错
          &&和||可以连接多个表达式,属于逻辑运算,且支持短路功能  
          &&时判断第一个条件为false,后面的100/0==0这个条件就没有进行判断
20.位运算符^的特点是什么? 
      答案:  位异或运算,^两边的数据同号为0 异号为1
     
21.如何实现对两个整数变量的值进行互换。 a=10 b=20 答案:
      int i=0; i=a; a=b; b=i;

22.三元运算符的格式是什么? 执行流程是什么? 
     答案: 条件表达式?表达式1:表达式2。
               先判断条件,若为真执行表达式1,若为假执行表达式2
23.'a'+1,结果是什么?为什么?都做了什么事情呢? 
     等价于char a='a';System.out.println(a+1);
     答案:'a'是一个字符在这里需要转换为unicode码,字符'a'的unicode码为97 所以输出为98
      1.char字符存储的是Unicode编码的代码点,也就是存储的是U+FF00这样的数值,然而我们在调试或者输出到输出流的时候,是JVM或者开发工具按照代码点对应的编码字符输出的。
        2. 所以虽然UTF-8编码的中文字符是占用3个或者4个字节,但是对应的代码点仍然集中在[0x4E00, 0x9FBB],所以char是能够存下在这个范围内的中文字符的。
        3. 但是对于超过16bit的Unicode字符集,也就是Unicode的扩展字符集,一个char是放不下的,需要两个char才能放下。
24..short s = 3; s = s+2; s+=2,有什么区别,为什么? 
     答案:其中,s=s+2中的s会被当做int类型处理,s+=2中的s会被当做short类型处理
             因为,只有int或者integer类型的数据才能直接进行算数逻辑运算

public static void main(String[] args) {
		int x = 1,y = 1;
		System.out.println(x++);//x++=1,先运算再+1
		System.out.println(++y);//++y,先+1再运算
		//&第一个都为false所以不会执行if内语句
		if(x++==2 & ++y==2){ 
		  System.out.println("x="+x+",y="+y);  
		}
		
		 int m = 1,n = 1; 
		 if(m++==2 && ++n==2) { m =7; } 
		 //m++=1,++n=2
		 //&&:短路与,第一个我false则执行了else语句
		 System.out.println("x="+m+",y="+n);//x=2,y=1
		 
		 int x1 = 1,y1 = 1;
		  //|:对所有的条件都判断
		 if(x1++==1 | ++y1==1) //true | false = true; x++=1,++y1=2
			 { x1 =7;}
		 System.out.println("x="+x1+",y="+y1);//x=7,y=2
		 
		 int x2 = 1,y2 = 1;
		 //:||如果第一个条件为真不再判断后面的,如果第一个条件为假再判断后面的
		 if(x2++==1 || ++y2==1) //x2++=1:true,++y2==1:false==>++y2=2;
		 { x2 =7; }
		 System.out.println("x="+x2+",y="+y2);//x=7,y=1
	}

以上通过其中是通过搜索资料,有的问题自己已经忘记的差不多了,通过练习能够达到熟练地操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kay三石 [Alay Kay]

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值