0基础学Java笔记整理

0基础学Java笔记整理:mooc课程翁恺

w1:1.0计算机与编程语言

计算机语言 计算机-程序-算法 计算机思维 

计算&算法
计算机所做的事情叫做计算,计算的步骤为算法。

程序的执行:解释&编译

解释:程序能理解我的程序并按照要求执行,有特殊的计算能力

编译:翻译,将程序翻译成计算机懂的语言(机器语言)写的程序,有确定的运算性能

编程&编程软件

写下计算机逐一执行的命令然后计算机来执行,相关的软件写程序帮助运行程序就是编程软件。

补充:下载eclipse jdk并配置环境 

system.out.printIn("")字母数字(不需要加“”)中文(引号为英文)

1.2变量与计算

package hello;

import java.util.Scanner;

public class Hello {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
      System.out.println(123);
      Scanner in=new Scanner(System.in);
//      System.out.println("echo:"+in.nextLine());
//      System.out.println(2+3+"=2+3="+(2+3));
//      System.out.println("100-23="+(100-in.nextInt()));
//      System.out.println("100-"+in.nextInt()+"="+(100-in.nextInt()));
      int price;
      price=in.nextInt();
      System.out.println("100-"+price+"="+(100-price));
    }

}
变量的来历

变量的名字“标识符”:字母数字_,数字不在第一个位置 ,java关键字不可以做标识符

变量定义<类型名称><变量名称>;变量类型/赋值 int price=0; 变量初始化<类型<变量=<初始值

固定不变的数为常数,写在程序中为直接量(literal),定义常量final(修饰符)

1.3浮点数计算

浮点数:带有小数点的数 浮点本意指小数点是浮动的是计算机内部表达非整数(含分数无理数 )的形式,另一种是定点数

double(双精度浮点数,表示浮点类型) 

浮点计算有误差egSystem.out.println(1.2-1.1)结果是0.09999999999999987<17位小数>(Android计算器低级错误?都是二进制惹的祸!

英制计量单位(foot inch)(foot+inch/12.0)*0.3048=m

运算符号优先级

结合运算  eg:result=(result=result*2)*6*(result=3+result)

强制类型转换(优先级高于四则运算) eg:double b=10.3 int a=(int)b  //System.out.println("身高是:"+(int)((foot+inch/12)*0.3048*100)+"厘米")

 

W2、判断

2.1比较

关系运算符:==/!==/<=/>=/</> 其结果逻辑值true/false 优先级:赋值<关系<算术; ==/!==< </>/<=/>=

eg:6>5>4\ a==b>false   true/false不能比较大小

注释:单行// ctrl+/   多行/*   */  行内注释eg:int ak=47/*36*/,y=9;

double a=1.0;

doube b=0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1

System.out.println(a==b);   **System.out.println(Math.abs(a-b)<1e-6); 

2.2判断

断点:debug

if-else:{ 语句块;}==&= ,缩进一个tab的位置

**if();//;什么也不做 

else匹配最近的If

(第三种用于Java便于注释)

 2.3分支

 级联

if-else到switch-case--break(default):Binary Tree算法

 

w3:循环

while(){}判断再循环

do{}while();执行一次再判断

计数循环 算平均数 猜数游戏

Scanner in=new Scanner(System.in);
        int number=(int)(Math.random()*100+1);//random[0,1)
        int a;
        int count=0;
        do {
             a=in.nextInt();
             count+=1;
             if(a>number) {
                 System.out.println("偏大");
             }
             else if(a<number) {
             System.out.println("偏小");
             }
         } while(a!=number);
        System.out.println("答对了!"+count+"次");
猜数游戏

 while到if循环

空循环for();阶乘不能算大的(2^31)

 a/=b-1   a=a/(b-1)

a=i++=i  a=++i=i+1      (i++/++i=i+1) eg:i=6   a=i++=6 i=7; a=++i=7 i=7

++ -- 单目运算符 递增递减运算符+/-1 算子为变量,前/后缀式

break&continue

 嵌套循环 多重循环

for(int i=1;i<=9;i++){
            for(int j=1;j<=9;j++){
                System.out.print("t"+(i*j));
            }
            System.out.println();    
        }
九九乘法表
 

 

Scanner in=new Scanner(System.in);
        int amount=in.nextInt();
        OUT:
        for(int one=0;one<=amount;++one)
        {
            for(int five=0;five<=amount;++five) 
            {
                for(int ten=0;ten<=amount;++ten)
                    if(one+five*5+ten*10==amount)
                    {
                        System.out.println(one+"张1角"+five+"张5角"+ten+"张1元");
                        break OUT;
                    }
            }
        }
标号OUT用法&凑10元

 Boolean(逻辑)运算!>&&>||  eg:(2!>2)||((4==4)&&(1<0)  if(!(n>0))

 

//    f(n)=1-1/2+1/3-1/4+...+1/n
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        double sum=0.0;//有小数/分数double
        int sign=1;
        for(int i=1;i<=n;i++)
        {
//            sum+=sign*1.0/i;//sign做负号用
//            sign-=sign;//可以写入for()中,for(..;i++,.)
            if(i%2==1) {
                sum+=1.0/i;
            }
            else {
                sum-=1.0/i;
            }
        System.out.println(sum);
        System.out.printf("%,2f",sum);//printf("")--条件输出
案例:负号-分数算法

辗转相除法

//辗转相除法
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
//        int a=in.nextInt();
//        int b=in.nextInt();
//        int oa=a;
//        int ob=b;
//        while(b!=0) {
//            int r=a%b;
//            a=b;
//            b=r;
//        }
//        System.out.println(oa+"和"+ob+"的最大公约数为"+a);
        //枚举法
        int a =in.nextInt();
        int b =in.nextInt();
        int ret=0;
        int i;
        for(i=2;i<=a&&i<=b;i++) {
            if(a%i==0) {
                if(b%i==0) {
                    ret=i;
                }
            }
        }
        System.out.println(a+"和"+b+"的最大公约数为"+ret);
    }
    
辗转相除法&枚举法

 

 

W5:数组

数组:容器;其中所有元素有相同的数据类型,一旦创建不能改变大小

 <.类型>[]<名字>=new <类型>[元素个数]; 元素个数必须给出,可为整数或变量

 

eg: int[] numbers =new int[4];

number[0]=101;number[1]=232;number[2]=231;number[3]=0;

数组作为一个管理者,即使2个数组内容相同,但管理者不能相等,下表[0,元素-1]但编译器不会检查运行可导致程序中止,length为每个数组内部成员告知元素数量for(i=0;i<grade.length;i++) .

 可扩展性代码:

for-each循环

 

 

没看懂==

二层数组

 

W6:适用对象

Java采用Unicode16表达字符

在所有的机器上,不管CPU、操作系统和本地语言,字符类型是一致和统一的。一个字符的常量是用单引号包围起来的一个字符,如'a'、'*'、'好'。一个汉字也是Unicode的一个字符,所以也是Java的一个字符。

字符类型:char单个字符 char a='\u0041'/65/(char)(a+'a'-'A') --- A  ‘汉’   

a+'A'-'a'把小写转为大写,a+'a'-'A'大写边小写

字符+数字为Unicode码表中数之后的字符;两字符减为其距离;char与Int互相赋值(int i='a'-'A')字符能比较大小

逃逸字符:\b\t\n\r\''\'\\  表达无法印出来的控制字符或特殊字符,\+字符,源自打字机的动作

(\b不等于del;\t使输出上下对齐)

eg:System.out.println("abc\bd") --- abcd  (“abc\b”)---abc

6.2包裹类型

每种基础类型都有对应的包裹类型(int--Integer/char-Character),可获得该类型最大最小值

 运算符:当需要让一个类/类型做事情的时候,.运算符

Integer.MIN_VALUE

Character

static boolean isDigit/Letter/LetterorDigit/LowerCass/UpperCase/Whitespace(char ch)判断这个字符是不是空格

static char toLowerCass/UpperCass(char ch)

 6.3字符串

字符串连接:+  可以连接两个字符串,一个不是字符串会将之表达为字符串后做连接eg:1+2+“age”/"age"+1+2/"age"+(1+2)---"3age"/"age12"/"age3"  "I'm"+18---"I'm 18"

输入字符串:

     in.next();       读入一个单词(单词标志是空格,空格包括空格、tab和换行)

     in.nextLine();   读入一整行 

比较:s1.compareTo(s2)  负0正   compareToIgnoreCass可以不区分大小写比较大小

获取String长度:length()

访问String里的字符:s.charAt(index) 与数组一样但不能用for-each循环来遍历字符串

得到子串:s.substring(n)/s.substring(b,e)---n之后,[b,e)

寻找字符:s.indexOf(c) (t) (c,n)/s.lastInedxOf(c).. c字符所在的位置,-1表示不存在/t的位置/n号位置找c

其他:s.startWith(t)/s.endsWith(t)/s.trim()/s.replace(c1,c2)/s.toLowerCase()/s.toUpperCase()

所有的字符串不可变 

switch(s){

case "this" ...break;

case "this" ...break;}

new=创建 String s=newString("")

in.next()/in.nextline() equal/compare/length()

s.charAt()/s.substring()/

 

W7:函数

<返回类型><方法名称>(<参数表>){<方法体>}

函数:一块代码,接受零或多个参数做一件事情并返回零个或一个值 

void 函数名(参数表):没有return/不带值的return

调用函数

 

 

 函数参数:

 

类型不匹配:char-->int-->double  (int)5.0

传值:形参/实参  参数也是本地变量

变量的生存期和作用域

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ps:对比

vb中for next;do while..loop

for 变量=初值 to 终值 step步长

语句块

next

步长!=0 为1可以省略

 

转载于:https://www.cnblogs.com/Pucua/p/9534188.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值