黑马程序员_Java基础(环境搭建、进制转换、运算符)
来源:互联网 发布:ext json 编辑:程序博客网 时间:2024/06/05 17:06
------- android培训、java培训、期待与您交流! ----------
————————Java环境搭建 常量和变量 运算符
Java概述:
Java 是SUN公司推出的一种面向Internet的编程语言,
现在已经成为WEB应用程序的首选开发语言
特点:完全面向对象,安全可靠,与平台完全无关(跨平台性,只需安装JVM(Java VirtualMachine)---Java虚拟机)
Java环境搭建:
JRE(Java Runtime Environment)java运行环境
JDK(Java Development Kit)Java开发工具包----其中包含了JRE
1、从http://www.oracle.com或者java.sun.com下载JDK开发工具包,安装
2、Path变量:将JDK中bin目录告诉系统
计算机----属性----高级系统设置----环境变量----系统变量----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-9、52个英文字母和_$组成
数字不可以开头
不可以使用关键字
规范:包名----全部小写、类名接口名----首字母大写、常量名----全部大写
常量和变量:
常量:
整数(常见三种表现形式十进制、八进制、十六进制)、小数、Boolean型常量、字符常量、字符串常量、null常量
变量:
在内存中开辟一片空间用于存储不确定的数据
格式:数据类型变量名 = 初始化值
变量分为
基本数据类型:字符型(char)数值型(整数类型(byte^1个八位short^2int^4 long^8)浮点类型(float^4double^8))
引用数据类型:class(类)interface(接口) [](数组)
进制:
二进制与十进制之间的互相转换
十转二:对十进制数不断除2取余数
方法:Integer.toBinaryString(6) //将6转换成二进制
代码:
1、StringBuffer的方法
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变成0,0变成1)加1如:
6:0000 0000 0000 0000 0000 0000 0000 0110
取反:1111 1111 1111 1111 1111 1111 1111 1001
加1:1111 1111 11111111 1111 1111 1111 1010 à -6
类型换转:
代码: byte b = 3;
b = b + 2; /*这里2为int类型占4个八位,和b作运算b被强制提升为int类型,所得结果也是int类型。此时不能将给过赋值给只占一个八位的b,程序报错*/
应该改为 b = (byte) (b + 2);//强制类型转换
注意:System.out.println(’a’+1);//打印98,a为char类型,占2个八位,1位int类型,占4个八位。它们运算时’a’被提升
运算符:
1、 算数运算符:
+ - * / %(取余数) ++ --
%(取余数):10%4 = 2;5%1 = 0;1%5 = 1;1%-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<</>>b:a相当于乘以/除以2的b次方如:3<<2=3*22=12
有符号右移>>,在右移过程中,最高位由原有数据而定
无符号右移>>>,在右移过程中,最高位补0。
位运算的计算效率最高
三元运算符
A > B ? C:D; 为true则C为false则D //运算完一定有一个结果,这个是三元运算符的局限性
------- android培训、java培训、期待与您交流! ----------
- 黑马程序员_Java基础(环境搭建、进制转换、运算符)
- 黑马程序员_Java基础(环境搭建,常量变量,类型转换,运算符,控制语句)
- 黑马程序员_java基础1(环境搭建、基础组成、进制转换)
- 黑马程序员_Java基础_常用基础内容(进制转换、基本数据类型、运算符、流程控制语句等)
- 黑马程序员_Java基础_进制转换、基本数据类型、运算符、流程控制语句等
- 黑马程序员_JAVA基础-运算符
- 黑马程序员_java环境搭建
- 黑马程序员_Java环境搭建
- 黑马程序员_Java环境搭建
- 黑马程序员_Java基础[6]_进制转换
- 黑马程序员_Java基础:十进制转换其他进制
- 黑马程序员_java运算符
- 黑马程序员_JAVA语言基础 标识符、变量、运算符
- 黑马程序员_Java基础[3]_运算符
- 黑马程序员_java语言基础_常量变量运算符
- 黑马程序员_Java语言基础_运算符,流程
- 黑马程序员_java 进制转换
- 黑马程序员_java进制转换
- vc中产生随机数
- 回溯——0-1背包问题
- 结构体最后的长度为0或1数组的作用
- UVa 10271 - Chopsticks dp
- 项目改名后部署名称不一致情况
- 黑马程序员_Java基础(环境搭建、进制转换、运算符)
- 1003 Hangover
- const 变量的问题
- 浅析组织结构与个人发展的关系
- 在C++中子类继承和调用父类的构造函数方法
- Windows Phone 调整屏幕亮度的简单实现
- 如何提高网页的运行速度
- Linux下Sniffer程序的实现
- webservice的header详解