黑马程序员_Java基础(环境搭建、进制转换、运算符)

来源:互联网 发布:ext json 编辑:程序博客网 时间:2024/06/05 17:06

------- android培训、java培训、期待与您交流! ----------

 

————————Java环境搭建 常量和变量 运算符

Java概述:

Java SUN公司推出的一种面向Internet的编程语言,

现在已经成为WEB应用程序的首选开发语言

特点:完全面向对象,安全可靠,与平台完全无关(跨平台性,只需安装JVMJava VirtualMachine---Java虚拟机)

Java环境搭建

JREJava Runtime Environmentjava运行环境

JDKJava Development KitJava开发工具包----其中包含了JRE

1、从http://www.oracle.com或者java.sun.com下载JDK开发工具包,安装

      2Path变量:将JDKbin目录告诉系统 

计算机----属性----高级系统设置----环境变量----系统变量----path: D:\glassfish3\jdk7\bin(我自己电脑上的)

      技巧:新建%JAVAHOME% = D:\glassfish3         Path = %JAVAHOME%\jdk7\bin; 这样可以减少或者避免JDK更换目录时更改Path变量(更改Path容易误操作其他系统变量)

      临时变量设置:(dos命令行中)set path = D:\glassfish3\jdk7\bin -局限性:只在当前窗口下有用

环境变量设置好之后,打开dos命令行,输入javac回车验证是否设置成功

HelloWorld小程序:

新建一个txt文件,将代码写好后保存,命名为Demo.java

将文件保存到E:\java\day01 目录下

打开命令提示符(开始----运行----cmd)输入E:回车----cdjava\day01 ---- javac Demo.java(编译)----java Demo(运行)

ClassPath环境变量配置

允许在其他目录下运行Classpath 目录下的程序

Dos命令行下set classpath = E:\java\day01回车就可以在其他地方运行Classpath目录下的.java文件

注意:JVM先查找Classpath目录,没找到再找当前目录

注释:

单行注释: //注释内容       (不被解析)

多行注释:/*注释内容*/          (不被解析)

文档注释:/**注释内容*/

写程序先下注释:需求----思路----步骤----程序注释

标识符:

程序中的自定义的名称,由数字0-952个英文字母和_$组成

数字不可以开头

不可以使用关键字

规范:包名----全部小写、类名接口名----首字母大写、常量名----全部大写

常量和变量:

常量:

整数(常见三种表现形式十进制、八进制、十六进制)、小数、Boolean型常量、字符常量、字符串常量、null常量

变量:

在内存中开辟一片空间用于存储不确定的数据

格式:数据类型变量名 = 初始化值

变量分为

基本数据类型:字符型(char)数值型(整数类型(byte^1个八位short^2int^4 long^8)浮点类型(float^4double^8))

引用数据类型:class(类)interface(接口) [](数组)

进制:

二进制与十进制之间的互相转换

十转二:对十进制数不断除2取余数

方法:Integer.toBinaryString(6) //6转换成二进制

代码:

1StringBuffer的方法

    publicstaticvoid toBin(int x)

    {

        StringBuffersb = new StringBuffer();//这个是一个容器,

        while(x>0)//x>0时,重复执行除以2模以2的过程

        {

            sb.append(x%2);//添加x模以2的值

            x= x>>1;//模以2之后再除以2

        }

        System.out.println(sb.reverse());//reverse()方法的作用是倒置

    }

2、数组的方法(查表法)

    publicstaticvoid toBinArray(int x)

    {

        char[] chs = {'0','1'};//

        char[] arr =newchar[32];//自定义数组

        int pos = arr.length;//定义指针

        while(x!=0)

        {

            int temp = x&1;//模以1

            arr[--pos]= chs[temp];//查表

            x= x >>>1;//除以2

        }

        for(int i=pos;i<arr.length;i++)//从指针pos位置开始遍历打印

        {

            System.out.print(arr[i]);

        }

    }

二转十:二进制乘以2的过程

其他进制转换:

先转换成二进制  如:

01011010 转换成十六进制则四个为一组0101  1010 ---- 0x5A

01011010 转换成八进制则三个为一组001 011 010 ---- 132

二进制转换成十六进制

1、用StringBuffer的方法

    publicstaticvoid toHex(int x)

    {

        StringBuffer sb = new StringBuffer();//定义一个容器

        while(x>0)//x>0时,循环模以15除以16

        {

            int temp = x&15;//定义一个容器用以临时存储模以15所得的结果

            if(temp>9)//temp大于9,则转换成字母再添加

                sb.append((char)(temp-10+'A'));

            else//temp小于9,则直接添加

            {

                sb.append(temp);

            }

            x= x>>>4;//除以16

        }

        sb.reverse();//反转

        System.out.println(sb);

  }

用数组的方法(查表法):

    publicstaticvoid toHexArray(int x)

    {

        char[] chs = {'0','1','2','3',  //定义一个数组,此数组为表

                    '4','5','6','7',

                    '8','9','A','B',

                    'C','D','E','F'};

       

        char[] arr =newchar[8];//定义一个数组容器

        int pos = arr.length;//定义一个指针等于数组的长度

        while(x>0)//循环模以15除以16

        {

            int temp = x&15;//模以15存储于临时变量中

            arr[--pos]= chs[temp];//将所得数作为指针赋值给我们自己定义好的数组高位

            x= x >>> 4;//除以16

        }

        for(int i=pos;i<arr.length;i++)//遍历打印,从指针的位置开始打印,就不会打印出空格

        {

            System.out.print(arr[i]);

        }

    }   

负数的二进制

           为该数的正数二进制取反(1变成00变成1)加1如:

                 60000 0000 0000 0000 0000 0000 0000 0110

取反:1111 1111 1111 1111 1111 1111 1111 1001

11111 1111 11111111 1111 1111 1111 1010 à -6

类型换转:

代码: byte b = 3;

            b = b + 2; /*这里2int类型占4个八位,和b作运算b被强制提升为int类型,所得结果也是int类型。此时不能将给过赋值给只占一个八位的b,程序报错*/

应该改为 b = (byte) (b + 2);//强制类型转换

      注意:System.out.println(’a’+1);//打印98achar类型,占2个八位,1int类型,占4个八位。它们运算时’a’被提升

运算符:

1、         算数运算符:

+ - * / %(取余数) ++ --

      %(取余数)10%4 = 25%1 = 01%5 = 11%-5 = 1-2%6= -2左边小于右边结果是左边,左右相等结果是0,右边等于1结果为0

++ --:自增自减运算符 

注意:System.out.println(“5+5=”+5+5) //打印5+5=55这里后面的5被提升为字符串类型

2、转义字符:通过 \来转换后面字母或者符号的含义

System.out.println(“HelloWorld”)//打印后自动加上换行,相当于后面加了一个\n(linux)\r\n(windows)

System.out.print(“HelloWorld ”)//则不换行

另外:\b退格   \r按下回车   \t制表符

注意:打印双引号:System.out.println(“\“HelloWorld \” ”)//打印结果为“HelloWorld

3、赋值和比较运算符

      赋值运算符:

=  +=  *=  /=  %=

         注意:short s = 4;

              s+=5;//只进行赋值运算

      比较运算符:

==  != <  >  <= >=  instanceof

           返回Boolean型变量值

4、逻辑运算符

异或短路&& 短路||   用于连接Boolean类型的表达式

false&&true= false //这里左边为false则不判断右边提高运算效率

true || false =true//这里左边为true则不判断右边提高运算效率

位运算:

<<左移  >>右移  >>>无符号右移   $与运算  |或运算  ^异或运算  ~反码

a<</>>ba相当于乘以/除以2b次方如:3<<2=3*22=12

有符号右移>>,在右移过程中,最高位由原有数据而定

无符号右移>>>,在右移过程中,最高位补0

位运算的计算效率最高

三元运算符

A > B ? C:D; trueCfalseD //运算完一定有一个结果,这个是三元运算符的局限性

 

------- android培训、java培训、期待与您交流! ----------

     

 

原创粉丝点击