1.java基本语法
?
- ?Java中的程序可分为结构定义语句和功能执行语句。
- 结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能。每条功能执行语句的结尾都必须用英文分号(;)结束
- Java语言是严格区分大小写的。
- 在编写Java代码时,为了便于阅读,通常会使用一种良好的格式进行排版。
- Java程序中一个连续的字符串不能直接分开在两行中书写。 如果为了便于阅读,想将一个太长的字符串分开在两行中书写,可以先将这个字符串分成两个字符串,然后用加号(+)将这两个字符串拼接起来,在加号(+)处断行。
2.注释(对代码含义进行解释说明,使程序员快速理解代码功能)
注释只在Java源文件中有效,在编译程序时编译器会忽略这些注释信息,不会将其编译到class字节码文件中。
- 单行注释 :单行注释通常用于对程序中的某一行代码进行解释,用符号“//”表示,“//”后面为被注释的内容。
int c = 10; // 定义一个整型变量c
? ? 2.多行注释 :多行注释顾名思义就是可以同时为多行内容进行统一注释,它以符号“/*”开头,并以符号“*/”结尾。
/* 定义一个整形变量x
将5赋值给变量x */
int x;
x = 5;
3.文档注释: 文档注释通常是对程序中某个类或类中的方法进行的系统性的解释说明,开发人员可以使用JDK提供的javadoc工具将文档注释提取出来生成一份API帮助文档。文档注释以符号“/**”开头,并以符号“*/”结尾。
/**
* Title:HelloWorld类
* @author srx
* @version 1.0
*/
public class HelloWorld {
/**
* 这是一个main()方法入口
* @param args 参数名
*/
public static void main(String[] args){
System.out.println("这是第一个Java程序!");
}
}
3.关键字
?对变量,类以及方法等命名时不要与关键字重名,否则可能会导致关键字失效。
4.Java中的标识符
?定义:在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。
组成:标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,也不能是Java中的关键字。
通用规范:
- 包名所有字母一律小写。例如:com.itheima.example01。
- 类名和接口名每个单词的首字母都要大写。例如:ArrayList、Iterator。
- 常量名所有字母都大写,单词之间用下划线连接。例如:DAY_OF_MONTH。
- 变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写。例如:lineNumber、getLineNumber。
- 在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如:使用userName表示用户名,password表示密码。
开发人员详细规范,建议参考《阿里巴巴开发手册》
5.java的数据类型
?整数型变量
注意:在为一个long类型的变量赋值时,所赋值的后面要加上一个字母“L”(或小写“l”),说明赋值为long类型。如果赋的值未超出int型的取值范围,则可以省略字母“L”(或小写“l”)。
?
long num = 2200000000L; // 所赋的值超出了int型的取值范围,后面必须加上字母L
long num = 198L; // 所赋的值未超出int型的取值范围,后面可以加上字母L
long num = 198; // 所赋的值未超出int型的取值范围,后面可以省略字母L
浮点数
注意:一个小数会被默认为double类型的值,因此在为一个float类型的变量赋值时,所赋值的后面一定要加上字母“F”(或者小写“f”),而为double类型的变量赋值时,可以在所赋值的后面加上字符“D”(或小写“d”),也可以不加。注意:一个小数会被默认为double类型的值,因此在为一个float类型的变量赋值时,所赋值的后面一定要加上字母“F”(或者小写“f”),而为double类型的变量赋值时,可以在所赋值的后面加上字符“D”(或小写“d”),也可以不加。
float f = 123.4f; // 为一个float类型的变量赋值,后面必须加上字母f或F
double d1 = 199.3d; // 为一个double类型的变量赋值,后面可以加上字母d或D
double d2 = 100.1; // 为一个double类型的变量赋值,后面可以省略字母d或D
float f = 100; // 声明一个float类型的变量并赋整数值
double d = 100; // 声明一个double类型的变量并赋整数值
字符型变量
- 字符类型变量用于存储一个单一字符,在Java中用char表示。
- Java中每个char类型的字符变量都会占用2个字节。
- 在给char类型的变量赋值时,需要用一对英文半角格式的单引号(' ')把字符括起来,如'a',也可以将char类型的变量赋值为0~65535范围内的整数,计算机会自动将这些整数转化为所对应的字符,如数值97对应的字符为'a'。
char c = 'a'; // 为一个char类型的变量赋值字符'a'
char ch = 97; // 为一个char类型的变量赋值整数97,相当于赋值字符'a'
布尔变量
布尔类型变量用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,即true和false。
boolean flag = false; // 声明一个boolean类型的变量,初始值为false
flag = true; // 改变flag变量的值为true
6.类型转换
说明:在程序中,当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。 分类:根据转换方式的不同,数据类型转换可分为两种:自动类型转换和强制类型转换。
自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。当把一个类型取值范围小的数值直接赋给另一个取值范围大的数据类型变量时,系统就会进行自动类型转换。
强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。
public class DateType{
public static void main(String[] args){
byte a;
int b = 298;
a = (byte)b;//强制类型转换
System.out.println("b = "+b);
System.out.println("a = "+a);
char c = 5;
int a1 = (int)(b+c);//运算时,强制类型装换,否则报错
System.out.println("a1 = "+a1);
int x, y, z;
x = y = z = 5;//int x = y = z = 5;是错的
System.out.print(x+" "+y+" "+z+"\n");
a += b;//实现强制类型转换,但是数据溢出无法避免,且与显示声明时的强制类型转换不同
System.out.println(a);
}
}
7.反斜杠“\”
- \r :表示回车,将光标定位到当前行的开头,不会跳到下一行。
- \n :表示换行,换到下一行的开头。
- \t :表示制表符,将光标移到下一个制表符的位置,就像在文档中用Tab键一样。
- \b :表示退格符号,就像键盘上的Backspace。
- \‘ :表示单引号字符,表示字符的开始和结束,如果直接写单引号字符('),程序会认为前两个是一对,会报错,因此需要使用转义(\')。
- \“ :表示双引号字符,表示字符串的开始和结束,包含在字符串中的双引号需要转义,比如"he says,\"thank you\"."。
- \\ :表示反斜杠转义字符,由于在Java代码中的斜杠(\)是转义符,因此需要表示字面意义上的\,就需要使用双斜杠\\。
8.运算符(位运算)
?9.java输入
import java.util.Scanner;//调用相关java文件的类
public class SelectionStructure{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);//定义,等待输入
int num = in.nextInt();//注意输入方式
//关于输入in.nextLine()可以吃掉回车符,输入字符串
//in.next()会自动清除空格,可以输入字符串,不吃回车
if(num % 2==0) {
System.out.println(num+"是一个偶数");
}else {
System.out.println(num+"是一个奇数");
}
}
}
10.循环结构
制乘法表:
public class LoopStructure{
public static void main(String[] args) {
//循环结构,用法同C语言和c++
int x = 1;
while(x<=4) {
System.out.println("x = "+x);
x++;
}
System.out.println("");//在结尾,自动输出换行
int y = 1;
do {
System.out.println("y = "+y);
y++;
}while(y<=4);
System.out.println("");
//嵌套循环
for(int i = 1;i < 9;i++) {
for(int j = 1;j <=i;j++) {
System.out.print(j+"*"+i+"="+j*i+"\t");//"\t"光标移到下一行,制表符
//此输出print,结束后不会自动输出换行(\n)
}
System.out.println("");
}
//标记outer
outer:for(int i = 1;i <= 9;i++) {
for(int j = 1;j<i;j++) {
if(i>3) {
break outer;//满足条件时,跳出被outer标记的循环范围
}
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println("");
}
}
}
11.数组
public class ArrayExample {
public static void main(String[] args) {
//第一种方式定义数组,初始化指定数组元素
int[] ids = new int[100];
System.out.println("ids[0] = "+ids[0]);
ids[0] = 2500;
System.out.println("ids[0] = "+ids[0]);
System.out.println("===============");
//第二种方式定义数组,初始化指定元素
String[] names = new String[] {"张三","tom","jack"};
System.out.println("names = "+names[0]);
names[0] = "李四";
System.out.println("names = "+names[0]);
System.out.println("===============");
//第三种方式定义数组,初始化指定元素,与C语言不同(注意)
Object[] object = {"张三","Tom","Jack"};
System.out.println("object = "+object[0]);
object[0] = "李四";
System.out.println("object = "+object[0]);
}
}
12.数组排序(冒泡)
public class Array {
public static void main(String[] args) {
int[] arr = {9,8,3,5,2};
for(int i = 0;i < arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println("");
//冒泡排序
for(int i = 0;i < arr.length;i++) {
for(int j = 0;j < arr.length-i-1;j++) {
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i = 0;i < arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println("\n");
//Example 25;
int[][] a = new int[3][];
a[0] = new int[] {11,12};
a[1] = new int[] {21,22,23};
a[2] = new int[] {31,32,33,34};
int sum = 0;
for(int i = 0;i < a.length;i++) {
int groupSum = 0;
for(int j = 0;j < a[i].length;j++) {
groupSum += a[i][j];
}
sum +=groupSum;
System.out.println("第"+(i+1)+"小组:"+groupSum);
}
System.out.println("总额为:"+sum);
}
}
|