javaSE基础

java SE基础                                                    


1.java基础语法

    程序由语句组成,语句包含用数据类型、运算符、表达式等。

    java语言的数据类型、运算符与表达式等是从c++语言简化而来的、高效、简洁。

2.java的数据类型

    java数据类型可分为两种:基本数据类型和引用类型。

    基础类型:boolean(布尔型)、byte(字节型)1个字节、int(整型)4个字节、short(短整型)2个字节、long(长整型)8个字节、char(字符型)2个字节、float(单精度浮点型)4个字节、double(双精度浮点型)8个字节。

   默认值:boolean(false)、byte((byte)0)、int(0)、short((short)0)、long(0L)、char(‘\u0000’)、float(0.0F)、double(0.0D或0.0)。

    引用类型:

3.标识符和关键字

    标识符:指程序中包含、类、接口、变量或方法的名字的字符序列。

   3.1关键字

    数据类型:boolean、byte、short、int、long、double、char、float。

    包引入和包声明:import、package。

    类和接口声明:class、extends、implements、interface。

    流程控制:if、else、switch、do、while、case、break、continue、return、defalut、for。

    异常处理:try、catch、finally、throw、throws。

    修饰符:abstract、final、native、private、protected、public、static、synchronized、transient、volatile。

    其他:new、instanceof、this、super、void、assert、const*、enum、goto*、strictfp。

注:加*号的java没有使用。

4.常量

    java程序运行时值不可修改的量称为常量。

    常量标识符一般大写。

5.变量

    java程序运行时值发生改变的量称为变量。


例:基本数据类型转换

public class TypeCast {
public static void main(String[] args) {
//自动类型转换
byte b = 1;
int i = b;
long l = b;
float f = b;
double d = b;
char ch = 'c';
//转换为对应的ASCII码值
int i1 = ch;
System.out.println("i2:" + i1);
short s = 99;
//强制类型转换
char c = (char) s;
System.out.println("c:" + c);
byte b1 = (byte) 129;
System.out.println("b1:" + b1);
}
}

程序运行结果为:

i2:99

c:c
b1:-127


例:自增与自减运算

public class TypeCast {
public static void main(String[] args) {
   int i1=5;
   int i2=10;
   int i=(i2++);
   System.out.println("i="+i);
   System.out.println("i2="+i2);
   i=(++i2);
   System.out.println("i="+i);
   System.out.println("i2="+i2);
   i=(--i1);
   System.out.println("i="+i);
   System.out.println("i1="+i1);
   i=(i1--);
   System.out.println("i="+i);
   System.out.println("i1="+i1);
}
}

程序运行结果为:

i=10
i2=11
i=12
i2=12
i=4
i1=4
i=4
i1=3


例:逻辑运算符运算

public class Logic {
public static void main(String[] args) {
   boolean a,b,c;
   a=true;
   b=false;
   c=a&b;
   System.out.println(c);
   c=a|b;
   System.out.println(c);
   c=a^b;
   System.out.println(c);
   c=!a;
   System.out.println(c);
   c=a&&b;
   System.out.println(c);
   c=a||b;
   System.out.println(c);
}
}

程序运行结果为:

false
true
true
false
false
true


6.if语句

    语法:if(<布尔表达式>){

                 <语句1>

                 }esle{

                  <语句2>

                 };

例:if语句判断某一年是闰年

public class LeapYear {
public static void main(String[] args) {
// args[0]表示命令行的第一个参数并把它由字符串转换为整型
int year = Integer.parseInt(args[0]);
// 1表示闰年,0表示不是闰年
int leap;
// 判断是否被4整除
if (year % 4 == 0) {
if (year % 100 == 0) {
if (year % 400 == 0)
leap = 1;
else
leap = 0;
}
// 是闰年
else
leap = 1;
} else
leap = 0;
if (leap == 1)
System.out.println(year + "年是闰年");
else
System.out.println(year + "年不是闰年");
}
}

程序运行结果为:

右击->RunConfigurations->Arguments->输入年份->判断是闰年还是平年了


7.switch语句

    语法:switch(<表达式>){

                  case<常量表达式1>:

                           <语句1>;

                    case<常量表达式2>:

                           <语句2> ;  

                     ...

                     case<常量表达式n>:

                               <语句n>;

                      default:

                                <语句>;                     

                   }

注:表达式只能是byte、short、char、int。

例:switch语句判断季节

public class SwitchText{
public static void main(String[] args) {
int i=0;
// args[0]表示命令行的第一个参数并把它由字符串转换为整型
i=Integer.parseInt(args[0]);
switch(i){
case 1:
System.out.println("It is spring now!");
break;
case 2:
System.out.println("It is summer now!");
break;
case 3:
System.out.println("It is autumn now!");
break;
default:
System.out.println("It is winter now!");
}
}
}

程序运行结果为:

右击->RunConfigurations->Arguments->输入一个数字


8.for语句

    语法:for(x1:x2:x3){

                   <语句1>

                   <语句2>

                   <语句3>

     }

例:for语句运算1*2*3*n的积

public class MultiplyCalcuate{
public static void main(String[] args) {
long l=1;
//把字符串转换为整型
int k=Integer.parseInt(args[0]);
for(int i=1;i<k;i++){
l=l*i;
}
System.out.println("1*2*3...*n"+k+"="+l);
}
}

程序运行结果为:

RunConfigurations->Arguments->输入一个数字


9.while语句

    语法:whlie(<布尔表达式>){

                          <语句1>

                          <语句2>

                          <语句n>

                }


10.do...while

    语法:do{

                    <语句1>

                    <语句2>

                     <语句n>

          }while(<布尔表达式>);


11.流程跳转语句

    break:从switch语句、循环语句或标号标识的代码块中退出。

    continue:跳过本次循环,立即进入下次循环。

    return:退出本方法,跳到上层调用方法。


12.方法与递归

    在java语言中,一个方法代表一个具体的逻辑功能,表达方法所属的类的对象所有的一种行为或一种操作。递归是一种重要的程序设计技术。用递归表达程序设计逻辑十分简明。

    方法:java中的一个方法类似于其他语言的函数,它代表了一个具体的逻辑功能,表达了它所属的类的对象所具有的一种行为或一种操作。

    语法:[修饰符1 修饰符2 修饰n]<返回类型><方法名>(<形式参数>){

                                       <方法体>

                                        }

例:打印100之间所有的质数

public class PrimeNumber {
//判断是否为质数
boolean isPrime(int n) {
for (int i = 2; i <= n / 2; i++)
//能被0整除不是质数
if (n % i == 0)
return false;
return true;
}
void printPrime(int m) {
int j = 0;
for (int i = 2; i <= m; i++) {
if (isPrime(i)) {
j++;
//每10个质数一行
if (j % 10 == 0) {
System.out.print(" " + i);
//换行
System.out.println();
} else
System.out.print(" " + i);
}
}
}
public static void main(String[] args) {
PrimeNumber pn = new PrimeNumber();
pn.printPrime(100);
}
}

程序运行结果为:

2 3 5 7 11 13 17 19 23 29
 31 37 41 43 47 53 59 61 67 71
 73 79 83 89 97

    递归:递归是相当重要的一种设计技术,用递归表达程序设计逻辑十分简明。递归可分为两种:直接递归和间接递归。

    直接递归:是指方法运行时又调用了自身。

    间接递归:是指方法运行时通过调用其他方法。

例:递归计算1+2+3+...+100的和

public class Sum{
static int i(int j){
return j==0?0:j+i(j-1);
} 
public static void main(String[] args) {
System.out.println("1+2+3+...+100的和是"+i(100));
}
}

程序运行结果为:

1+2+3+...+100的和是5050

 

例:递归计算Fibonacci数列的第5个值

public class Sum{
public static void main(String[] args) {
System.out.println(f(5));
}
public static int f(int i){
if(i==1||i==2){
return 1;
}else{
return f(i-1)+f(i-2);
}
}
}

程序运行结果为:

5


13.命名规范

    类名和接口名:首字母大写,如果类名有几个单词组成,则采用骆峰标识,即每个单词首字母大写。如:HelloWorld。

    方法名和变量名:首字母小写,如果方法名或变量名有几个单词组成,则第一个单词首字母小写,剩下首字母都大写。如:toString。

    包名:采用小写形式。如:org.innerclass.anonymous。

    常量名:采用大写形式,如果有几个单词组成,则用_隔开。如:final int VALUE_ONE=9。


综合实例

    求某一个日期对应的是星期几

import java.text.SimpleDateFormat;
import java.util.Date;
public class CalculateWeeDay{
public static void main(String[] args) {
//实例化一个当前日期时间
Date date=new Date();
//格式化日期
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(f.format(date));
String str=f.format(date);
//分隔日期字符串
String[] str1=str.split("-");
//使用包装类把字符串形式的整数值转换为整型
//year为年份
int year=Integer.parseInt(str1[0]);
//month为月份
int month=Integer.parseInt(str1[1]);
//day为日
int day=Integer.parseInt(str1[2]);
//至今总天数
int total;
int week;
int i;
boolean leap=false;
//判断是否是闰年
leap=(year%400==0)|(year%100!=0)&(year%4==0);
//起始日期
week=1;
//计算total的值
total=year-1980+(year-1980+3)/4;
//计算当年前几月的累计天数与total的初值之和
for(i=1;i<=month-1;i++){
//判断当前月份
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
total=total+31;
break;
case 4:
case 6:
case 9:
case 11:
total=total+30;
break;
case 2:
if(leap)
total=total+29;
else
total=total+28;
break;
}
}
//将本月天数加到total上
total=total+day;
week=(week+total)%7;
System.out.print("today"+year+"-"+month+"-"+day+"is");
switch(week){
case 0:
System.out.println("Sunday");
break;
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
}
}
}

程序运行结果为:

2016-12-12
today 2016-12-12 is Monday



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值