java基础学习过程笔记1

1.java的健壮性

Web的多平台环境对程序有特别的要求,因为程序必须在各种系统中可靠地执行。因此,在设计Java时,使其具备创建健壮程序的能力被提到了高优先级的地位。为了获得可靠性,Java在一些关键领域进行了限制,从而迫使程序员在程序开发中及早地发现错误。同时,使程序员不必再担心会引起编程错误的许多最常见的问题。因为Java是强类型化的语言,它在编译时检查代码。当然不管怎样,在运行时也检查代码。许多难以跟踪的bug,在运行时通 常难以再现,这种情况在Java中几乎不可能产生。因为使编写好的程序在不同的运行条件下,以可预见的方式运行是Java的关键特性之一。 为了更好地理解Java是多么健壮,分析程序失败的两个主要原因:内存管理错误和未处理的异常(即运行时错误)。在传统的编程环境中,内存管理是一件困难、乏味的工作。例如,在C/C++中,程序员必须手动分配和释放所有动态内存。有时这会导致问题,因为程序员可能会忘记释放以前分配的内存,或者更糟糕的是,试图释放程序其他部分仍然在使用的内存。Java通过为您管理内存的分配和释放,可以从根本上消除这些问题(事实上,释放内存完全是自动的,因为Java为不再使用的对象提供了垃圾回收功能)。传统环境中的异常情况通常是由“除0”或“没有找到文件”这类错误引起的,并且必须使用既笨拙又难以理解的结构对它们进行管理。Java通过提供面向对象的异常处理功能在这个领域提供帮助。在编写良好的Java程序中,所有运行时错误都能够并且应当由程序进行管理。

所谓健壮性,简单地将就是程序对于各种非法地输入能够有很好地处理,并且使
程序能够正常地继续运行下去。

我们知道,一个程序通常有它的spec,我们可以理解为程序有它的目的与任务。有了这目的与任务,程序的输入(或者说方法的输入参数)边有了要求。那么当输入不符合spec要求时,考虑不周的程序往往会奔溃,而作为一名有良心的、优秀的程序员,怎么能容许这种情况发生呢。我们要求程序再这种情况下,也能够正常地处理、运行。这样的性能,我们便将其称为健壮性。

2.java编译后能在多个平台运行,是因为不同的平台具有的java虚拟机


3.jdk = jre + 开发工具集(例如javac,java编译工具等)


4.jre=jvm + java se标准类库(java核心类库 )


5.java虚拟机屏蔽了底层运行平台的差别,实现“一次编译,到处运行”


6.jdkk中src.zip是源代码包


7.window doc 控制台默认编码是gbk


8.java是解释性语言,编译后不能直接执行,需要java虚拟机来执行;c++/c语言是编译性语言,编译后可以直接执行


9.(byte,short)和char 之间不会有自动转换,boolean不参与转换


10.整数赋值可以,变量赋值不可以 例如: byte b1=10 (true)  byte b1 =10, int b2 =b1(false), char c1 =b1(false)

11.byte,short,char 三者可以计算,计算首先转换为int类型。
  例:byte b2 = 1; byte b3= 2;
short s1 = 1; 
short s2 =b2 + s1;//错,b2 + s1 =>int
byte b4 = b2 + b3;//错, b2 +b3 =>int 


12.基本数据类型转换题目:
判断是否能够通过编译
  short s =12;  true
   s =s-9;     //错int =>short


byte b =10;  //对
b=b+11; // 错 int =>byte
b=(byte)(b+11);  //对


char c ='a'; 
    int i = 16;  
    float d =0.314F;  
    double result =c + i+d; //对,float =>double


  4. byte b =16;  
    short s =14;
short t = s +b;  //错,int=>short


13.基本类型转换为String类型,基本类型的值加""即可 例:int n1 =100 ,String str1 =n1 +"";
String类型转换为基本类型,通过基本类型的包装类调用parseXX方法即可 例:Integer.parseInt("123");
boolean类型比较特殊,一般是boolean b =Boolean.parseBoolean("true")

14.怎么把字符串转成字符-> 含义是把字符串的第一个字符取出,得到一个字符
s5 =123 //System.out. println(s5.charAt(0));得到字符‘1’

15.char c1 = '男'   char c2 ='女'  c1 + c2 结果为int类型,即Int(c1)+int(c2), 男 字符码值 + 女 字符码值

17.字符编码表

ascii 一个字节表示128个字符,实际上一个字节可以表示256字符,只用128个,不能表示所有字符,第一位统一规定为0

unicode 使用固定大小的编码,使用两个字节来表示字符,字母和汉字都是占用两个字节,浪费空间,可以表示2的16次方个字符,
即655536个字符,编码0-127的字符是与ascii一样,例如: ‘a’在ascii码中是0x61,在unicode码中是0x0061,都对应97,因此unicode兼容ascii码

utf-8(编码表,大小可变的编码,字母使用1个字节,汉字使用3个字节

gb2312(可表示汉字,gb2312 <gbk)
big5 码(繁体中文,台湾,香港)


18.  Arithmetic 算术 Operator 运算符      ArithmeticOperator算术运算符


19.     10/4 java中结果为2    10.0/4 java中结果为2.5 ,属于截断
        double d = 10/4 结果为2.0
% 取模,即取余,%的本质看一个公式 a%b =a-a/b*b

面试题 

1.    int i=1;  i=i++; //规则使用临时变量;(1)temp=i;(2) i=i+1;(3) i=temp;
          System.out.println(i);// 1

2.    int i =1;
      i=++i;  //规则使用临时变量; (1)i=i+1;(2)temp=i;(3)i=temp;
   System.out.println(i);//2

     5/9 结果为0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值