欢迎软件行业的同仁们来参观讨论!

JAVA基础之三

上一篇 / 下一篇  2013-10-10 21:31:46 / 个人分类:JavaSE

复习:
一、Java开发过程
 编辑 ->  编译 -> 运行
1、最基本工具
1)编辑 纯文本编辑器 EditPlus  记事本
         Hello.java     package day01;
2)cmd  控制台   编译
    javac -d . Hello.java  ->  day01\Hello.class
3)cmd  控制台   运行
    java day01.Hello


2、使用IDE 集成开发环境 MyEclipse 8.5
1)编辑  直接创建一个class 进行编辑
2)保存源文件立即编译 如果编译出错 出现红色提示
3)运行 右击源程序 Run As -> Java Application
    前提:必须有主方法
       public static void main(String[] args){
       }


二、Java的注释   
作为代码的解释说明文档,不作为代码的有效内容
但依然重要.
1、单行注释   //
2、多行注释   /*    */
3、文档注释   /**   */


三、Java标识符  idenfiers
作为代码中的组成部分,由用户定义:
包名、类名、变量名、方法名、常量名等...
java.lang   String   name   main    PI
1、标识符的规则  5条 必须遵守
1)字母、数字、_、$组成  首字母不能数字
2)不能是Java关键字  50个 + 3个字面值
   关键字全部小写         true  false  null
3)区分大小写,大小写敏感
4)长度没有限制
5)支持中文,但不推荐使用


2、标识符的规范  5条 建议遵守   业内编码习惯
1)类名、接口名 每个单词首字母大写 MyFirstJava
2)变量名、方法名第一单词首字母小写,之后的每个单词首字母大写     myFirstName   playGeme()
3)包名全部小写  使用.分隔
 package com.tarena.javase.day01;
4)常量全部大写  使用_分隔
 public static final int MAX_VALUE = 127;
5)见名知意
 ArrayIndexOutOfBoundsException
 数组下标越界异常


四、关键字  keywords  由JDK设计好的
JDK5.0后 50个  特点:全部小写字母
 class  package  int  byte  import ...if else  for ...
保留字:goto   const  JDK目前也不用
另外有三个字面值(不属于关键字):
  true    false    null
  真      假       空


五、Java的数据类型
1、Java如何表示数  —— 二进制数的补码形式
使用最高位作为符号位,0表示正数,1表示负数
正数的补码:原码
负数的补码:正数的原码 按位取反 + 1


8位二进制数:  byte
最大值 01111111     127
         00000000     0
         11111111     -1
最小值 10000000     -128


32位二进制数:int
最大值 01111111 11111111 11111111 11111111
         2147483647  
        00000000 00000000 00000000 00000000  
          0
        11111111 11111111 11111111 11111111   
         -1
最小值 10000000 00000000 00000000 00000000 
         -2147483648


2、Java数据类型的特点
Java是一种强类型的语言,对数据类型比较重视
String name = "Tom";
name = "James";  可以  类型匹配
name = 23;    不可以  int和String类型不匹配


第一次声明变量必须明确指定数据类型。


3、Java数据类型分类
(1)基本数据类型   8种
  也称为:简单类型、原生类型 prime
byte  short  int  long  char  float  double  boolean
  1      2     4    8     2      4       8        1


(2)引用数据类型  无数种
  也称为:复杂类型,对象类型
 使用 引用变量 —> 内存对象
    (对象的内存地址)
按照形式分5种:
  类     接口         数组    枚举    标注
class    interface    int[]


(3)void类型


作业:员工信息的输入和输出
 使用java.util.Scanner类  扫描器类 从控制台输入数据
基本思路:
1.创建扫描器对象sc
  Scanner sc = new Scanner(System.in);
2.提示并输入员工的信息
  String name   名字   sc.next()   sc.nextLine()
  int age         年龄   sc.nextInt();
  double salary  薪水   sc.nextDouble();
3.输出员工的信息
  System.out.println(...);


在day03.homework包中创建类TestEmpScanner
红色下划波浪线  编译错误
黄色下划波浪线  警告  不是错误 不影响
  The local variable name is never read
   这个 局部 变量    name 从来没有使用过


一、Java数据类型
1、基本数据类型   8种
 也称为:简单类型、原生类型  prime
byte short int  long char float double  boolean
 1    2      4    8    2     4     8         1
(1)byte  字节型 1Byte=8bit   一共2^8=256种
     表数范围:-128~127   -2^7 ~ 2^7-1


(2)short 短整型 2Byte=16bit  一共2^16=65536种
     表数范围:-32768~32767   -2^15 ~ 2^15-1


(3)int 整型  4Byte=32bit    一共2^32种
     表数范围:-2^31 ~ 2^31-1
          -2147483648 ~ 2147483647
         大约:正负21亿多


(4)long 长整型  8Byte=64bit   一共2^64种
     表数范围:-2^63 ~ 2^63-1


在day03包下创建TestPrime.java程序
需求:修每公里地铁5亿,向银行贷款 每个月借5亿
        500000000
        一共借5个月,问共贷了多少钱?
在day03包下,创建TestInt.java程序


 byte最大值:127
   0111 1111  + 1 
   1000 0000        -128


 int最大值:2147483647 + 1 -> -2147483648
  01111111 11111111 11111111 11111111   + 1
  10000000 00000000 00000000 00000000   -最大值
 原因:类型选取不合适  25亿超过int的范围 
        可以使用long类型


(5)char  字符型   2Byte=16bit   2^16=65536种
    既是字符,又是数字
   表数范围:0~65535   0~2^16-1
   使用每个数字对应一个字符  比如'A'  '$'  '中'
   字符使用单引号 表示任何一个字符


字符编码的发展:
 美国 ASCII编码  1Byte 7bit  只能表示0~127  128种
         十进制数   十六进制数    字符
         48             0x30         '0'
         65             0x41         'A'
         97             0x61         'a'
         98             0x62         'b'
 西欧 ISO-8859-1 也称为latin-1编码
        1Byte 8bit  能表0~255   256种
        0~127和ASCII完全兼容  向下兼容
        128以后可以定义自己的字符  扩充了
 中国 GBK   2Byte   65536种 足够了
       '中'  '国'  'A'  'a'  统一使用2Byte
       UTF-8  目前比较流行的编码
          1Byte  保存英文   比较节约空间
          3Byte  保存中文等字符
       UTF-8属于Unicode编码的一种


Java的字符编码:Unicode编码  2byte=16bit
     使用数字 对应 字符
        65           'A'
       0x41
可以使用Unicode表达法表示: '\u四位十六进制编码'
   十六位二进制数 使用 4  位十六进制数表示
    '\u0030'      '0'  
    '\u0041'      'A'
    '\u0061'      'a'
    '\u4e2d'      '中'
    '\u56fd'      '国'  


JDK提供了工具可以将中文汉字转化为unicode编码
 使用jdk\bin\目录 native2ascii.exe命令
在D:\创建 1.txt   编辑:中国  保存
控制台D:\> native2ascii  1.txt  2.txt
在D:\会生成一个2.txt文件 就是其unicode编码


float和double都是有精度误差的,无法完全精确保存浮点数,double误差比float小。平时一般使用double类型。
(6)float   单精度浮点型  4Byte=32bit
  使用3Byte保存数据 1Byte保存位权
  科学计数法:2.0E17    2.0 * 10^17
     数据:2
     位权:17
   数据                                位权   -128~127
  00000000 00000000 00000010   00010001
                                  2           17


(7)double 双精度浮点型  8Byte=64bit
  使用6Byte保存数据 2Byte保存位权


Type mismatch: cannot convert from double to float
 类型不匹配: 不能讲double类型转化为float
 float f1 = 1.0;
 结论:整数的字面值默认是int类型
        小数的字面值默认是double类型


(8)boolean  布尔型  能够表示逻辑 真 / 假
       只能使用两个字面值:true / false
        底层只需一个bit就够了  最多仅1Byte够了
   不能像C语言:使用0表示假,非0表示真  Java不允许


模拟:使用一个布尔变量 flat 表示天气的好坏
     boolean flag = true;   表示好天气
     flag = false;  表示坏天气
   如果是好天气,出去玩;如果天气不好,继续学习
     if(flag){    如果为真
        出去玩
     }else{    否则,如果为假
        继续学习
     }


基本类型的底层如何存储?
 使用基本的固定字节、二进制数来保存数据
能够精确存储数据:byte, short, int, long, char
不能够精确存储数据:float, double


2、引用数据类型    无数种
 也称为:复杂类型、对象类型
 存储方式:   引用变量  指向->  内存对象
             (对象的内存地址)
按照表现形式分为5类:
 类       接口       数组       枚举      标注
class   interface   String[]


应用JDK已经设计好的引用类型: class
java.lang.System   系统类
java.lang.String    字符串类
java.lang.Integer   int类型的包装类
java.lang.Long       logn类型的包装类
java.util.Scanner   扫描器类
java.math.BigInteger  大整数类  


需求:求出9的99次方 要求得到精确的值
 使用long能否保存?不能使用基本类型
 可以使用引用类型 java.math.BigInteger  大整数类
   能够精确保存很大的整数 内存有多大,就可有多大


在day03包下创建TestBigInteger.java程序
29512665430652752148753480226197736314359272517043832886063884637676943433478020332709411004889


int最大值:2147483647  十进制数
0x7fffffff 十六进制
二进制:
01111111 11111111 11111111 11111111


long最大值:9223372036854775807


计算机基本硬件结构:
 磁盘                 内存             CPU
保存文件、程序     进程              指令
 Hello.class        JVM进程


JVM内存结构分布:
1)Stack  栈区    局部变量 (在方法中定义的变量)
          栈就是一种“先进后出”FILO的数据结构
2)Heap   堆区    分配空间,创建对象
3)Code   方法区  类的信息,静态资源


之前一直使用JDK提供的引用类型,比如String类
之后自己定义引用类型:class 类
 设计一个学生类 其对象可以表示学生的信息以及功能
 学生类Student是对各种具体学生对象的一种抽象
 对象是类一种具体实例
类名:day03.Student   
学生类:
   有什么? (属性)  
      姓名    String name;
      年龄    int age;
   会什么? (方法)  学习  
      方法的三要素:
      方法名:study
      参数表:(String course)  表示课程的名称
      返回值类型:void 表示无返回值类型


TAG:

 

评分:0

我来说两句

日历

« 2024-05-15  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 39753
  • 日志数: 55
  • 建立时间: 2013-08-30
  • 更新时间: 2013-12-27

RSS订阅

Open Toolbar