今天开始学习Java,看的是[毕向东_Java基础视频教程].因为没有书,将笔记写写在博客上可以备忘和记录学习里程。同时希望通过写博客的形式可以让自己学习Java更有动力。

 

  01day

 

  1.Java跨平台性

  Java的跨平台性的主要原因是因为java虚拟机(JVM)的存在。

  2.JRE和JDK

  JRE是Java运行环境,全拼是(Java Runtime Environment),JRE包括Java虚拟机和运行Java程序所需要的核心库。想要运行一个java程序,在计算机上安装JRE就可以了。

  JDK是Java开发工具包,全拼是(Java Development Kit),JDK是提供给Java开发人员使用的。其中包括了开发Java程序的所用工具,还包括JRE。

  3.doc系统命令

  cd 进入路径 cd..返回上层目录 cd\ 返回盘符 

  dir 列出当前目录 md 创建文件夹 kd 删除文件夹

  4.JDK环境变量配置

  

//JDK安装路径
JAVA_HOME C:\Java\jdk1.7.0_51
CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

 

  5.hello world  

class Demo

  {

     static void main(String [] args)

    {

      System.out.println("Hello World");

    }

  }

  在命令行中通过javac编译后,然后 java Demo.class 就可以在doc控制台上打印一个Hello Wrld 了。

   

  02day 

 

  1.Java关键字

  Java关键字是被Java语言赋予特殊含义的单词。

 

  2.标识符

  标识符就是在程序中自定义的名称,这些名称由字母、数字和符号组成。标识符需要符合两个规则: 1.数字不可以在开头 2.不可以使用关键字

  在起名字时,为了提高代码的可阅读性,名字要尽量有意义。

 

  3.代码注释 

  // 注释一行 

   /*

                注释多行

    */

 

  4.常量和变量

  常量就是不能改变的数值。在Java中常量包括整数常量、小数常量、布尔型常量、字符串常量、null常量。

  变量:就是将不确定的数据进行存储,也就是在内存中开辟一个空间存储数据。

  变量的定义:

  数据类型 变量名 = 初始化值;   eg. int i = 0;

  什么时候定义变量? 当数据不确定,需要对数据进行存储的时候就定义一个变量用来完成存储。

  在Java中数据类型包括:基本数据类型(byte、short、int、long、float、double、char、boolean)和引用数据类型(class、interface、[](数组))

   

    int x=4;

  byte b =2 //-128~127

  short s = 30000; //3W+

  long l = 4l;

  float f = 2.3f;

  double d = 24.46;

  char ch = '4';

  boolean bo = true;

  5.类型转换  

class  D2Byte
{
    public static void main(String[] args) 
    {
        byte b = 4; 

        //b = b + 5;
        b += 5;

        System.out.println(b);
        
        //b= b + 5; 编译不通过,这里是先经行加法然后赋值,相加以后会默认转化为int型。赋值的时候int型不能给byte型赋值。
        //b += 5;   编译通过,这里+=运算符会默认进行强制转换。
    }
}        

  6.字符串拼接  

class StringDemo
  {
    public static void main(String[] args) 
    {     

      string a = "LiMing";

        int b = 23;

      System.out.println("hello, "+a+" you age is"+b+".");
    }
  }

  字符串数据和任何数据使用+都是相连接,最终都会变成字符串。上面的程序运行后会打印出: hello, LiMing you age is 23.

  7.转义字符:(通过\ 来转变后面字符或者符号的含义)。

  \n :换行。

  \b : 退格。

  \r :按下回车键。

  \t : 制表符。

 

  8.赋值运算符

   +=   -=    *=    /=    %=

 

  9.逻辑运算符

  逻辑运算符用于连接Boolean类型的表达式

  & 与:&可以看成是数字0,在判断的时候只要出现0就是false

  |  或:|可以看成是数字1,在判断的时候只要出现1就是true

  ^ 异或:总结起来就是,同假异真。

      ! 非:非就是取反,取反表达式后假就是真,真就是假

     && 逻辑与:判定跟&差不多。区别就是 当使用&&的时候,左边出现false后立即得出判断结果(逻辑短路), &&右边的表达式不会进行判断而使用  & 两边的表达式都参与运算。

  || 逻辑或:判定跟|差不多。 区别就是 当使用||的时候,左边出现true后立即得出判断结果(逻辑短路), ||右边的表达式不会进行判断而使用  | 两边的表达式都参与运算。

  

  10.位运算符(位运算是直接对二进制数就行运算)

  <<:左移   eg. 3<<2 = 12 --> 3*2*2 =12 左移就是乘以2的移动位数次幂

3的二进制表现形式:0000-0000-0000-0011 -->左移2位补位后就是00-0000-0000-0011--> 0000-0000-0000-1100=12

 

  >>:右移  eg.  3>>1 =1 --> 3/2 = 1 右移就是除以2的移动位数次幂

  3的二进制表现形式:0000-0000-0000-0011 -->右移1位补位后就是00000-0000-0000-001--> 0000-0000-0000-0001=1

 

  >>>:无符号右移  eg. 3>>>1 = 1 --> 3/2 = 1

  >>:右移后,最高位补位由原来的数据的最高位而定。如果最高位位0,则右移后用0补位,如果最高位为1,则右移后用1补位

  >>>:无论最高位是什么,右移后用0补位

 

  &与运算   eg. 6 & 3 = 2

  0000-0000-0000-0110
 & 0000-0000-0000-0011
-----------------------
   0000-0000-0000-0010    = 2

      

  | 或运算  eg.  6 | 3 = 7

  0000-0000-0000-0110
 |  0000-0000-0000-0011
----------------------------
   0000-0000-0000-0111     = 7

 

  ^异或运算  eg. 6 ^ 3 = 5

  0000-0000-0000-0110
 ^ 0000-0000-0000-0011
----------------------------
   0000-0000-0000-0101   = 5

   ^异或的应用: 7^4^4=7 一个数异或同一个数两次还是那个数。

  应用1:用于加密

  

  应用2: 不借助第三方两个变量进行互

class D2nTom 
{
    public static void main(String[] args) 
    {
        /*
         不借助第三方两个变量进行互换
        */
        int a = 10 ,b =50;
        System.out.println("不借助第三方两个变量进行互换前: a= " +a +", b= "+b);
        //方法一
         
        a= a+b;
        b= a-b;
        a= a-b;
        
        System.out.println("不借助第三方两个变量进行互换后: a= " +a +", b= "+b);
        System.out.println("--------------------------------------------------");
        /*
            方法二
        */
        
        System.out.println("不借助第三方两个变量进行互换前: a= " +a +", b= "+b);
        
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;


        System.out.println("不借助第三方两个变量进行互换后: a= " +a +", b= "+b);      

    }
}

 

  ~反码  eg. ~6 = -7

 ~  0000-0000-0000-0110---->所有位取反
-----------------------------
   1111-1111-1111-1001 ---> 先减一再取反的出整数
 -  0000-0000-0000-0001 --->减一
---------------------------- 1111-1111-1111-1000 --->取反 ----------------------------   1000-0000-0000-0111 =-7

   10.条件运算符

  (条件表达式)? 表达式1:表达式2

  如果条件表达式的结果为true则执行表达式1的内容,如果条件表达式的结果为false则执行表达式2的内容。  

  int a=10,b;

  b=(a>8)? 100:200;
      /*三目运算符:
        好处:可以简化 if else 代码
        弊端: 因为是运算时,所以运算完必须由一个结果。
      */    

  11.判断结构

//if语句:有三种形式
1.if(条件表达式)
{
        执行语句;
}

2.if(条件表达式)
{
        执行语句;   
}
else
{
        执行语句;
}

3if(条件表达式)
{
        执行语句;   
}
else if(条件表达式)
{
        执行语句;
}
...
...
...
else
{
        执行语句;
}

  12.选择结构-switch语句

switch(表达式)
{
    case 取值1:
    执行语句;
    break;

  case 取值2:
    执行语句;
    break;

  case 取值3:
    执行语句;
    break;
    ...
    ...
    ...
    
    case 取值n:
    执行语句;
    break;

    default:
    执行语句;
    break;
}
/*
switch的特点
1.switch语句选择的类型只有四种: byte,short,int,char.
2.case与default之间没有顺序。先执行第一个case,直到没有匹配的case后执行default。
3.结束switch语句的两种情况,遇到break或执行到switch语句结束。
4.如果匹配的case或者default没有对应的break,那么程序会继续向下执行。运行可以执行的语句,直到遇到break或者说switch结尾后结束。


if和switch语句功能相似,具体情况怎么选择呢?
如果判断的具体数值不多,而且符合 byte short int char 这四种类型。虽然两个语句都可以使用,建议使用switch语句,因为效果稍高。
其他情况,对区间判断,结果为boolean类型判断,则使用if,if的范围更广泛。
*/

  

 

 posted on 2014-10-12 10:29  编程小兵  阅读(11744)  评论(0编辑  收藏  举报