main方法快捷鍵:psvm
輸出快捷鍵:sout
Hello World! 儀式
public class demo01 {
public static void main(String[] args) {
System.out.println("Hello World!");
System.out.println("你好,世界!");
}
}

Java的main方法
這里學習了命名規范,以及Java中main方法的書寫
public class demo01 {
public static void main(String[] args) {
/*
//大小寫敏感
String a ="zhouql";
String A ="zhouql";
//規范
String 1a ="zhouql";
String Av ="zhouql";
String $ ="zhouql";
String $1 ="zhouql";
String _ ="zhouql";
String _1 ="zhouql";
String 1_ ="zhouql";
String -asd ="zhouql";
//不能使用關鍵字作為變數名或方法名
String clas ="zhouql";
String class ="zhouql";
*/
}
}
基本資料型別
package base;
public class demo02 {
public static void main(String[] args) {
//八大基本資料型別
//整型
int num1 = 10; //最常用
//范圍在100多
// byte num2 = 200;
//short
short num3 = 20;
//long
long num4 = 40L; //Long型別在數字后面加個L表示是long型別
//float 浮點數:小數
float num5 = 12.3F; //float型別加F,否則就報錯
double num6 = 3.14159;
//字符
char name1 = 'a';
// char name2 = 'as'; //字符是一個
//字串
//String 不是關鍵字,是一個類
String num7 = "asd";
//布林值
boolean flag = true; //真
boolean fla = false; //假
}
}
強制轉換以及轉義
public class demo03 {
public static void main(String[] args) {
int i=10;
int i1=010;//ba jin zhi
int i2=0x10;//shi liu jin zhi
System.out.println(i);
System.out.println(i1);
System.out.println(i2);
System.out.println("===================================================");
float f=0.1f;
double d=1.0/10;
System.out.println(f==d);
System.out.println(f);
System.out.println(d);
System.out.println("===================================================");
float a=231313123123123189f;
float b=a+1;
System.out.println(a==b);
System.out.println("====================================================");
char c1='a';
System.out.println("強制轉換");
System.out.println((int)c1);
System.out.println((int)'A');
System.out.println("====================================================");
System.out.println("轉義字符");
System.out.println("Hello\tWorld!");
System.out.println("Hello\nWorld!");
}
}

新特性
public class demo06 {
public static void main(String[] args) {
//JDK新特性,方便看
int money = 10_0000_0000;
System.out.println(money);
int years = 20;
System.out.println(money*years);
System.out.println("-----------------------------");
long sum = money*((long)years);
System.out.println(sum);
}
}
命名再認識
public class demo07 {
//static 是修飾符,不區分前后
//final 只能讀不能修改,不能改變的就定義成常量
static final double PI = 3.1415926;
public static void main(String[] args) {
System.out.println(PI);
}
}
//命名規范
/*
* 1,見名之意
* 2,類成員變數駝峰原則
* 3,區域變數首字母小寫和駝峰原則
* 4,常量大寫和下劃線
* 5,類名首字母大寫和駝峰
* 6,方法名首字母小寫和駝峰
* */
類變數,區域變數,實體變數
package base;
public class demo08 {
//類變數 static
static double salary = 20000;
//實體變數:從屬于物件
//實體變數,不初始化,默認值,除了基本型別,其他都是null,布林值默認是false
String name;
int age;
//main方法
public static void main(String[] args) {
//區域變數;必須宣告和初始化值
int i = 10;
System.out.println(i);
//變數型別 變數名 變數值
demo08 demo08 = new demo08();
System.out.println( demo08.age);
System.out.println( demo08.name);
//類變數 static
System.out.println(salary);
}
//其他方法
public void add(){
System.out.println();
}
}
運算子部分
加減乘除
public class Demo01 {
public static void main(String[] args) {
//二元運算子
int a = 10;
int b = 20;
int c = 30;
int d = 10;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
}
}
public class Demo02 {
public static void main(String[] args) {
long a = 12345678L;
int b = 123;
short c = 10;
byte d = 2;
System.out.println(a+b+c+d);//long
System.out.println(b+c+d);//int
System.out.println(c+d);//int
}
}
模運算(重點體會)
public class Demo03 {
public static void main(String[] args) {
//關系
int a = 10;
int b = 20;
int c = 21;
//取余shu,模運算
System.out.println(c/b);
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
自增自減
public class Demo04 {
public static void main(String[] args) {
//一元運算子 ++ 自增 -- 自減
int a = 3;
int b =a++;//執行完這行代碼后,先給b值,是3,然后在自增a的值,此時a是4
System.out.println(a);
int c = ++a;//執行完這行代碼前,先自增a的值,此時a是5,然后在賦值
//簡單說a++先賦值后遞增 ++a先遞增后賦值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//冪運算
double pow = Math.pow(3,4);
System.out.println(pow);
}
}
邏輯運算
public class Demo05 {
public static void main(String[] args) {
//與(and) 或(or) 非(no)
boolean a = true;
boolean b = false;
System.out.println(a && b);
System.out.println(a || b);
System.out.println(!(a && b));
//短路運算
System.out.println("===================");
int c = 5;
boolean d = (c<4) && (c++<4);
System.out.println(d);
System.out.println(c);
}
}
位運算(目前了解即可)
public class Demo06 {
public static void main(String[] args) {
/*
* A = 0011 1100
* B = 0000 1101
*
* A&B = 0000 1100 兩個都是1才為1,否則就是0
* A|B = 0011 1101 都是0,才為0,有一個1,直接為1
* A^B = 0011 0001 相同為0,不相同為1
* ~B = 1111 0010 取反
*
*
* >>右移 *2 <<左移 /2
* 效率極高
* 0000 0000 0
* 0000 0001 1
* 0000 0010 2
* 0000 0011 3
* 0000 0100 4
*
* 0001 0000 16
* ……
* */
}
}
小拓展
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;
a-=b;
System.out.println(a);
System.out.println(a+b);
//字串連接 String
System.out.println(""+a+b);
System.out.println(a+b+"");
}
}
獲取資料輸入,簡單互動,類似C語言scanf
注意一點,IO流使用完記得釋放
import java.util.Scanner;
import static java.lang.System.in;
public class Demo01 {
public static void main(String[] args) {
//創建一個掃描器物件,用來接受鍵盤資料
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收");
if(scanner.hasNext()){
String str = scanner.next();
System.out.println("輸入的內容為"+str);
}
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("輸入,nextline");
if(scanner.hasNextLine()){
String s = scanner.nextLine();
System.out.println(":"+s);
}
scanner.close();
}
}
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("輸入");
String str = scanner.nextLine();
System.out.println("輸入的是:"+str);
scanner.close();
}
}
mport java.util.Scanner;
public class demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = 0;
float f = 0.0f;
System.out.println("輸入");
if(scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println(":"+i);
}else{
System.out.println("輸入的不是整數");
}
scanner.close();
}
}
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
int score = 0 ;
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入成績,童鞋");
int s = scanner.nextInt();
if(s>=60 && s<=100){
System.out.println("恭喜,沒掛科");
}else if(s>=0 && s<60){
System.out.println("額,你懂");
}else{
System.out.println("不是整數");
}
scanner.close();
}
}
public class Demo06 {
public static void main(String[] args) {
char grade = 's';
switch (grade){
case 'a':
System.out.println("優秀");
break;
case 'b':
System.out.println("良好");
break;
case 'c':
System.out.println("及格");
break;
case 'd':
System.out.println("再接再厲");
break;
default:
System.out.println("未知等級");
}
}
}
public class Demo07 {
//JDK7開始支持字符,字符的本質還是數字
//反編譯 java---class(位元組碼檔案)-----反編譯(IDEA)
public static void main(String[] args) {
String name = "小張";
switch (name){
case "劉森":
System.out.println("劉森");
break;
case "小張":
System.out.println("小張");
break;
default:
System.out.println("弄啥嘞");
}
}
}
回圈
public class Demo01 {
public static void main(String[] args) {
int i = 0;
while(i<100){
System.out.println(i);
i++;
}
}
}
public class Demo02 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i<=100){
sum+=i;
i++;
}
System.out.println(sum);
}
}
public class Demo03 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do {
sum+=i;
i++;
}while (i<=100);
//注意分號
System.out.println(sum);
}
}
public class Demo04 {
public static void main(String[] args) {
int a = 0;
while (a<0){
System.out.println(a);
a++;
}
System.out.println("======================");
do{
System.out.println(a);
a++;
}while (a<0);
}
}
public class Demo05 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1;i<=100;i++){
sum+=i;
System.out.println(i);
}
System.out.println(sum);
}
}
//死回圈
//for(;;)
public class Demo06 {
public static void main(String[] args) {
int a = 0;
int b = 0;
for (int i = 0; i < 100; i++) {
if(i%2==0){
a+=i;
}else{
b+=i;
}
}
System.out.println("偶數和是:"+a);
System.out.println("ji數和是:"+b);
}
public class Demo07 {
public static void main(String[] args) {
int i = 0;
while (i<=1000){
i++;
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(15)==0){
System.out.println();
}
}
}
}
//輸出完會換行 println
//輸出完不會換行 print
99乘法表
public class Demo08 {
public static void main(String[] args) {
for (int i = 1;i<=9;i++){
for (int j = 1;j<=i;j++){
System.out.print(i+"*"+j+"="+(i*j)+'\t');
}
System.out.println();
}
}
}
package 回圈;
//JDK5,重點回圈陣列和集合
public class Demo09 {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50,60};
//便利陣列的元素
for (int x:numbers){
System.out.println(x);
}
}
}
//continue;跳過某次回圈(妹子)
//break;強制推出回圈(兇)
public class Demo10 {
public static void main(String[] args) {
int i = 0;
while (i<100){
i++;
if(i>50&&i<60){
continue;
}
System.out.println(i);
}
}
}
//列印101~150的質數
//質數大于1的自然數中,除了1和它本身以外不在有其他因數的自然數
public class Demo11 {
public static void main(String[] args) {
int i = 0;
outer:for (int a = 101;a<150;a++){
for(int b = 2;b<a/2;b++){
if(a%b ==0){
continue outer;
}
}
System.out.print(a+" ");
}
}
}
public class Demo12 {
public static void main(String[] args) {
for (int i = 0; i <=5; i++) {
for (int j = 5; j >=i ; j--) {
System.out.print(" ");
}
for (int j = 0; j <=i ; j++) {
System.out.print("*");
}
for (int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
方法
個人理解Java的方法可以與C的核心函式理解一致
在main外寫方法,叫著不舒服,可以暫時叫函式,保證main函式的整潔,其次就是在main方法中的呼叫,后來你會發現,它不僅僅用在main中……
public class Demo01 {
//main方法
public static void main(String[] args) {
int add = add(1,5);
System.out.println(add);
print();
System.out.println(max(3,3));
}
//假發
public static int add (int a,int b){
return a+b;
}
//void
public static void print(){
System.out.println("Hello World!");
}
//最大值
public static int max(int a,int b){
int c = a>b?a:b;
return c;
//1.回傳值
//2.種植方法
}
}
方法重構,就是一個方法,假設我比較大小的方法,小明需要比較兩個數的大小,小紅需要比較三個人的方法,這是只需要重新寫一個名字一樣,引數不一樣,實作程序不一樣就實作了函式的重構
public class Demo02 {
public static void main(String[] args) {
System.out.println(max(2.6,4.8,3.6));
}
public static int max(int a,int b){
int c = a>b?a:b;
return c;
}
public static double max(double a,double b){
double c = a>b?a:b;
return c;
}
public static double max(double a,double b,double c){
if(a>b){
return a;
}else if(b>c){
return b;
}else{
return c;
}
}
}
可變長引數
public class Demo03 {
public static void main(String[] args) {
Demo03 demo03 = new Demo03();
demo03.test(1,234,45,4,6);
}
public void test(int... i){
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
System.out.println(i[4]);
}
}
public class Demo04 {
public static void main(String[] args) {
printMax(34,56,34,78,89);
printMax(new double[]{1,2,34});
}
public static void printMax(double... numbers){
if(numbers.length == 0){
System.out.println("沒有輸入");
return;
}
double result = numbers[0];
for(int i = 1; i<numbers.length;i++){
if(numbers[i]>result){
result = numbers[i];
}
}
System.out.println("the max value is "+result);
}
}
遞回,簡單說就是傳遞烏龜,哈哈
就是自己呼叫自己,自己回傳給自己
//遞回頭
//遞回體
public class Demo05 {
public static void main(String[] args) {
Demo05 demo05 = new Demo05();
demo05.test();
}
public void test(){
test();
}
}
實體,計算n地階乘
public class Demo06 {
public static void main(String[] args) {
int c = f(4);
System.out.println(c);
}
public static int f(int n){
if(n == 1){
return 1;
}else {
return n*f(n-1);
}
}
}
值得注意地是,Java語言用地堆疊機制,而遞回操作,需要大量的計算機資源,往往面對稍大地需求,Java預置的空間根本不夠遞回完,所以謹慎使用,不過要理解遞回,感受遞回之美!!!快來手撕代碼吧

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/292711.html
標籤:java
