目录
Linux终端编写并运行Java程序
javac 是java的编辑器,能将 .java 文件编译为 .class 可执行文件:
- 使用vim编辑器对程序进行编写
- javac + 文件名.java
- java + 文件名
第一章 计算机、程序和Java概述
温习了计算机基础知识、程序和操作系统,并且初始Java及其基本语法。
1、梦开始的地方:简单的Java程序
public class Welcome //类
{
public static void main(String[] args) //main方法
{
System.out.println("Welcome to JAVA!");
}
}
输出: Welcome to JAVA!
第一行定义了一个类(Welcome),每个Java程序都至少有一个类,且类名都以大写字母开头。
第二行定义了main方法,程序从这里开始执行。一个类可以包含好几个方法。
同时,Java源程序保存为 .java 文件,编译为 .class 文件。同时文件名必须与公共类名完全相同,比如上面这段代码的文件必须命名为 Welcome.java 。
public class ComputeExpression
{
public static void main(String[] args)
{
System.out.print("(10.5 + 2 * 3) /(45 - 3.5) = "); //输出句子
System.out.println((10.5 + 2 * 3) /(45 - 3.5)); //没有引号输出值,输出后换行
}
}
输出:(10.5 + 2 * 3) /(45 - 3.5) = 0.39759036144578314
print和println用法上没有区别,区别仅仅在于换行:
print直接输出,而println输出后会将光标移到下一行开始处(换行)
第二章 基本程序设计
1、+
‘ + ’不仅仅能用来进行数值的相加,在java中也是字符串连接符。
同时,数值与字符串相加,会把数字拼接为字符串。
String s="5";
int s1=2;
System.out.println(s+s1);
输出:52
2、控制台读取输入
标准输出设备:System.out;标准输入设备:System.in
1 import java.util.Scanner;
2
3 public class HELLO{
4 public static void main(String[] args)
5 {
6 Scanner input = new Scanner(System.in);
7 double radius = input.nextDouble();
8 double area = radius * radius *3.14159;
9 System.out.println("The area for the circle of radius "+radius + " is " + area);
10 }
11 }
其中input、radius、area都是自定义标识符
第六行的 Scanner input = new Scanner(System.in); 语句中创造了一个Scanner对象。Scanner是一个类,Sannner类在 java.util 包中。
第一行的 import 语句倒入类(如果第六行写成中的Scanner替换为 java.util.Scannner 的话,则不需要第一行的声明。)
第七行的 double radius = input.nextDouble(); 语句读取一个double值的输入,而输入值赋给 radius 。
同理,如果想要输入一个 int 值则为 int radius = input.nextInt();。而如果想要读入一个字符串,则使用next( )方法。
3、数值数据类型
byte | -128 ~ 127 / 2的7次方 |
short | -32768 ~ 32767 / 2的15次方 |
int | 2的31次方 |
long | ... |
float | ... |
double | ... |
4、幂运算
Math.pow ( a, b )表示 a的b次方。其中 pow 为方法,Math为类。
拓展:那么根号运算则为 Math.pow ( a, 0.5 )
第三章 选择
1、产生随机数
Math.random () 会随机产生一个 0.0~1.0 之间的double值。如果想要获取一个0~9之间的整数,可以使用:(int)( Math.random( ) * 10 );
第四章 数字函数、字符和字符串
1、常用数学函数(Math类)
Math类在java.lang包中,而java.lang包中的所有类都是隐式导入的,因此不需要在程序开头导入。
(1)三角函数方法
sin(弧度) | 返回三角正弦函数值 |
cos(弧度) | 返回三角余弦函数值 |
tan(弧度) | 返回三角正切函数值 |
toRadians(角度) | 返回度数 |
toDegrees(弧度) | 弧度转化为角度 |
asin() | 返回反三角正弦函数值 |
acos() | 返回反三角余弦函数值 |
atan() | 返回反三角正切函数值 |
(2)指数函数方法
exp( a ) | 返回 e 的a次方 |
log( a ) | 返回 a 的自然对数 |
log10( a ) | 返回 a 以10为底的对数 |
pow( a ) | 返回 a 的 b 次方 |
sqrt( a ) | 返回 a 的平方根 |
(3)取整
ceil( a ) | a向上取一个最接近它的整数(双精度) |
floor( a ) | a向下取一个接近它的整数(双精度) |
rint( a ) | 要是用到自己查 |
round( a ) | 自己查+1 |
(4)min、max和abs方法
min 返回两数最小值、 max 返回两数最大值,而 abs 返回一个数的绝对值。
(5)random方法
上面提到过random方法,它生成一个等于0.0小于1.0的随机double类型数。同时我们也可以编写它使其生成任意范围的随机数,比如:
(int)( Math.random() * 10 ) //返回0~9之间的随机整数
50 + (int)( Math.random() * 50) //返回一个50~99之间的随机整数
a + ( int )( Math.random( ) * b ) 即表示:生成一个a ~ a+b之间的随机数(不包括a+b)
(6)常量
Math类还提供两个double型常量:即 PI(派)和 E(自然对数的底)。用的时候直接使用Math.PI和 Math.E 即可。
2、字符和字符串
和C语言相同,双引号内为字符串,而单引号内为字符
(1)字符( Character类 )
char c = 'A'; //字符
System.out.println( ++c );
输出结果为:B
1、 字符读取
调用nextLine()从控制台读取一个字符串,在用charAt(0)来返回一个字符:
Scanner input =new Scanner(System.in);
String s1 = input.nextLine();
char s = s1.charAt(0); //获取下标值为0的字符
System.out.println("The line entered is "+ s);
输入及输出:
Character类的一些方法
isDigit( ch ) 如果指定字符是一个数字,返回true isLetter( ch ) 如果指定字符是一个字母,返回true isLetterOrDigit( ch ) 是一个数字或字母,返回true isLowerCase( ch ) 是一个小写字母,返回true isUpperCase( ch ) 是一个大写字母,返回true toLowerCase( ch ) 返回指定字符的小写形式 toUpperCase( ch ) 返回指定字符的大写形式
char c = 'A';
System.out.println(Character.isDigit(c)); //搭配输出函数输出
System.out.println(Character.isLowerCase(c));
输出:false
false
(2)字符串( String类 )
1、字符串读取
调用Scanner对象上的next()方法读取以空白字符结尾的字符串(空格也算):
Scanner input = new Scanner(System.in);
String s1 = input.next(); //读取字符串
next()有时无法读取一整行文本,这时我们可以使用nextLine():
package PACKAGE_NAME;
import java.util.Scanner;
public class EXERCISE { //类
public static void main(String[] args) //main方法
{
Scanner input =new Scanner(System.in);
String s1 = input.next(); //next()方法
String s2 = input.next();
String s3 = input.nextLine(); //nextLine()方法
System.out.println("1、"+ s1);
System.out.println("2、"+ s2);
System.out.println("3、"+ s3);
}
}
输入及输出结果:
2、字符串输出
String c = "WELCOME TO JAVA!"; //c为字符串,用String类引用
System.out.println( c );
输出结果为:WELCOME TO JAVA!
length( ) | 返回字符串中的字符数 |
charAt( 下标值 ) | 返回字符串中指定位置的字符 |
concat( s1 ) | 将本字符串和字符串s1连接,然后返回一个新的字符串 |
toLowerCase( ) | 返回该字符串的全小写格式 |
toUpperCase( ) | 返回该字符串的全大写格式 |
trim( ) | 去掉两边的空白字符 |
3、返回字符个数
注意:因为是对象方法,因此使用的时候应该是:
String s ="XXX"; //s即为String类的对象
System.out.println( s.length( )); //返回s的字符数
而不是:System.out.println( String.length( ));错误!!
4、连接字符串
String s3 = s1.concat(s2); //连接s1和s2字符串成为s3
//等价于String s3 = s1 + s2;
5、字符串和数字之间的转换
可使用Integer.parseInt()方法以及Double.parseDouble()方法对数值型字符串进行类型转换
(一定要是数值型字符串,否则会报错)