编写java程序
step1: 用文字处理软件编写Java源程序, 以扩展文件名.java保存.
step2: 调用JDK开发工具中的javac.exe将.java文件编译为.class文件.
step3: 调用JDK的java.exe解释运行step2编译好的.class文件
包名的第一个关键字是企业网 第二个关键字是企业名称 第三个关键字是项目名称 第四个关键字是具体
类名首字母要大写, main函数名小写
System.out.print: 输出字符串, 输出后光标不换行, 即后面的输出命令将在本行继续显示文本.
System.out.println: 输出字符串, 输出后光标换行, 即后面的输出命令在下一行显示文本
给main方法的args参数赋值
args是字符串数组 args[0]代表args数组的头一个元素及第一个字符串
public static void main(String[] args) {
System.out.println("Hello" + args[0]);
}
args参数赋值方法, 点击菜单栏的run, 如图
然后点击 run configurations - 找到 java application 里面的类名 - 再点击arguments - 之后在program arguments里面写入字符串即可 如图:
最后运行程序, 则就可以得到args的参数
加运算
字符串与数值相"加" java会把数字先转换为字符串,然后相连 例1 : "abc" + 35 的结果是"abc35", 例2: 3+5+"12" = "812" 数字先相加然后转为字符串与"12"相连 例3:""+1+2="12" (""代表空字符串)
java项目结构
点击菜单栏的window - show view - navigator 然后就可以看到项目结构
修改包名.类名等用F2快捷键
运行程序快捷键: commend + f11
syso+alt+/ 组合键. 可以快速输入system.out.println
System.out.println 语句只能输出一个字符串, 如果想输出多个字符串, 中间必须要用+号相连接
Math类
1,Math类是JDK中用于数学运算的工具类
2, Math类在rt.jar中的java.lang包下
System.out.println("10+5="+(10+5)); //10+5=15
System.out.println("10-5="+(10-5)); //10-5=5
System.out.println("10*5="+10*5); //.10*5=50
System.out.println("10/3="+10/3); //10/3=3
System.out.println("10/3="+10.0/3);//10/3=3.333333333
//取整 floor方法可以保留整数部分截去小数部分floor
System.out.println("10/3="+Math.floor(10.0/3));//10/3=3.0
//保留整数位, 但对小数点后第一位进行四舍五入round
System.out.println("3.75对小数点后第一位四舍五入="+Math.round(3.75));//3.75对小数点后第一位四舍五入=4
//取绝对值abs
System.out.println("|-10|="+Math.abs(-10));//|-10|=10
//m的n次方pow
System.out.println("3的4次方="+Math.pow(3, 4));//3的4次方=81.0
//求平方根的函数sqrt
System.out.println("120的平方根="+Math.sqrt(120));//120的平方根=10.954451150103322
System.out.println("保留3.75小数点后第一位 ="+Math.round(3.75*10)/10.0);//保留3.75小数点后第一位 =3.8
常用技巧
1, 解决删除项目时,忘记勾选删除磁盘选项: 去工作空间删除
2, 显示行号: 右击资源区和代码区中间的空白, 然后点击 show line numbers
3, 设置工作空间 :
3.1 切换到别的工作空间: 点击菜单栏的file - switch workspaces - other 后修改工作空间 之后eclipse会重新启动, 重新启动的eclipse就在新的工作空间工作了
3.2 再切换到原来的工作空间: 点击菜单栏的file - switch workspaces -选择工作空间 - eclipse 自动重启,然后回到原来的工作空间中
4, Eclipse 快捷键 : 4.1:格式化代码的快捷键: commend+shift+F 4.2: 添加/取消单行注释的快捷键: commend+/ 4.3: 添加多行注释的快捷键: commend+shift+/ 4.4; 取消多行注释的快捷键: commend+shift+\
变量
字面量: Java的变量和常量中存放的具体的数据称为字面量
计算机的高级语言普遍使用变量来管理内存中存储的数据
变量的命名: 1, 首字母是英文字母, $或下划线, 由字母.数字, 下划线组成; 2, 变量的命名遵循见名之义的原则 3, Java变量名建议不适用中文 4, 变量名首字母建议不用大写字母 5, 用驼峰命名法命名多个单词组成的变量名 6, 变量名不要使用Java关键字
定义变量 每个变量必须属于一种数据类型. 定义模式: 类型 变量名1, 变量名2, ..., 变量名n; 例如: byte score;
用变量简化计算
计算: (sqrt(20)+sqrt(10))/(sqrt(20)-sqrt(10))
不用中间变量直接计算: System.out.println("(sqrt(20)+sqrt(10))/(sqrt(20)-sqrt(10))="+Math.round(10*(Math.sqrt(20)+Math.sqrt(10))/(Math.sqrt(20)-Math.sqrt(10)))/10.0);
通过中间变量进行计算:
double sqrt20 = Math.sqrt(20);//将20的平方根保存在sqrt20中
double sqrt10 = Math.sqrt(10);//将10的平方根保存在sqrt10中
double resule = (sqrt20 + sqrt10)/(sqrt20 - sqrt10);//保存结果
resule = Math.round(resule * 10)/10.0;
System.out.println("(sqrt(20)+sqrt(10))/(sqrt(20)-sqrt(10))="+resule);
用中间变量进行计算可以使代码逻辑更加清晰
代码例:
String name = "小米3";
String operation = "Android4.3";
int cpu = 2;
double money = 1999.0;
System.out.println("手机品牌:"+name+"\n手机操作系统:"+operation+"\ncup数量:"+cpu+"\n价格:"+money+"元");
控制台输出为:
手机品牌:小米3
手机操作系统:Android4.3
cup数量:2
价格:1999.0元
数据类型的包装类:
Java 为基本数据类型提供了对应的类, 这些类称作包装类, 如下图
为什么要使用包装类?: 1, 包装类中封装了一些很使用的方法和常量, 例如: Byte.MIN_VALUE是Byte类中的一个常量, 存放了byte类型数据的最小值. 2, 包装类在集合中用来定义集合元素的类型
包装类的常用方法和常量:
1, integer.MIN_VALUE: int类型的最小值: -2^31
2, integer.MAX_VALUE: int类型的最大值: 2^31-1
3, int integer.parseint(String sinteger) 作用: 将字符串类型的整形转换为int类型的数据
4, String integer.toBinaryString(int value) 作用: 将十进制数转换为二进制, 返回结果string类型
5, String integer.toHexString(int value) 作用: 将十进制数转换为十六进制, 返回结果为String类型
输出:
//Byte最小值到最大值
System.out.println(Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);//-128~127
//Byte的108转成对应的整形 再加5
System.out.println(Byte.parseByte("108")+10);//118
//Integer最小值到最大值
System.out.println(Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);//-2147483648~2147483647
//Integer的50000转成对应的整数,再加5
System.out.println(Integer.parseInt("50000"+5));//500005
//将十进制整数转成对应二进制
System.out.println(Integer.toBinaryString(16));//10000
//将十进制数转成十六进制
System.out.println(Integer.toHexString(16));//10
二进制补码
1, 在计算机系统中, 数值一律用二进制的补码来存储
2, 二进制的最高位是符号位, 0表示正数 ,1表示负数.
3, 正数的值是其本身, 负数的值是最高位(符号位)不变, 其它位逐位取反(含符号位), 再加1
4, 两数相加, 若最高位(符号位)有进位, 则进位被舍弃.
为什么使用补码?
1, 可以将符号位和其它位统一处理
2, 最高位不再表示数值, 而是作为符号位,正好将数值折半,即一半是0至正数, 一半是负数
例1); 4位二进制数共有16个数, 用补码表示, 则一半是0~7, 一半是-1~-8 例2): 8位二进制数共有256个数, 用补码表示, 则一半是0~127, 一半是-1~-128;
3, 减法也可按加法来处理;
例如: 7-3,可以表示为7+(-3), 二进制表示为:
补码运算的特征是什么?
1, 计算机中正数和负数的关系是取反加一.
2, 补码运算是封闭的: 运算结果保留在补码范围之内, 超范围就溢出.
3, 4位二进制补码最多能表示2^4(16)个数, 数的范围是-6~7
4, 8位二进制补码最多能表示2^8(256)个数, 数的范围是-128~127
5, 16位二进制补码最多能表示2^16(65536)个数, 数的范围是-32768~32767
6, 32位二进制补码最多能表示2^32个数, 数的范围是-2的31次方~2的31次方-1
补码运算的原理 ..
正数 + 负数 = 模 模: 某种类型数据的总数 例如; 4位二进制数的模式2^4=16
例如 在4位二进制中, 7+(-7) = 16 如图:
整数类型
1, Java有四种整数类型: byte, short,int和long
2, Java默认整数计算的结果是int类型
3,整数的字面量是int类型
4, 若字面量超过int类型的最大值, 则字面量是long类型, 那么后面要用L(或l)表示该值是long类型
例如: 将字面量30亿赋值给一个long类型的变量: long a = 300000000L
5, Java底层byte和short按照32位(int类型)计算
浮点类型
1. 浮点类型用于表示小数的数据类型
2, 浮点数原理: 也就是二进制科学计数法
3,Java的浮点类型有float和double两种
4, Java默认浮点类型计算的结果是double类型, 字面量也是double类型, 若要给float类型的变量赋字面量的值, 则要在字面量后面加F(或f)
浮点数的科学计数法
1,十进制浮点数科学计数法: 2134655 = 2.134655*(10^5)
2, 二进制浮点数科学计数法: 10111 = 1.0111*(2^100)
例: double d = 2.6;
double result = d-2;
System.out.println(result); //0.6000000000000001 (这个地方的1是运算的误差)
字符类型
1, char类型的字面量可以是一个英文字母,字符或一个汉字, 并且由单引号包括
2 , Java底层使用一个16位的整数来处理字符类型, 该数值是一个字符的unicode编码值
unicode编码
1, unicode编码是全球范围内的编码方法
2, unicode编码的英文部分与ASCII码兼容, 同时英文字符和数字是连续编码的
3, Java在处理char类型的数据时,在底层是按unicode码来处理的
//显示0-127的字符
for (int i = 0; i < 128; i++) {
// (char)i 是将数字i转成字符i 后面的i是unicode编码的i
System.out.println((char)i+":"+i);
}
转义符
转义符是"\", 通过转义字符,可表示一些特殊的字符.
例如:'\n'表示回车
'\t'表示制表字符, 一个制表符表示向右条8-10个字符
'\\'表示\
'\' '表示单引号
'\" '表示双引号
'\u4e2d'表示unicode编码对应的字符(汉字 '中')
例:
\u4e2d 代表汉字"中", 是16进制编码
System.out.print('\u4e2d'+":");
//把中的16进制编码转成10进制
System.out.println(4*Math.pow(16, 3)+14*Math.pow(16, 2)+2*Math.pow(16, 1)+13*Math.pow(16, 0));// 中:20013.0
(char)20013 可以再转给字符中
System.out.println((char)20013+":"+20013); //中:20013
System.out.println("我和"+"\n你不在一行显示要!"+"\n\t我在这里显示~");
变量的初始化: 用"="