Java基础知识笔记

变量

变量存在于内存中(程序结束、计算机关机之后 变量失效)

1.声明数据类型(整数、小数、字符串、。。。。)

2.赋值 符号(=)将右侧给到左侧  

3.使用

Java数据类型

引用数据类型(对象类型):String .....字符串(放任意字符,并且需要用 双引号引起来)

原生数据类型(基本数据类型):8个,

数字:

         整数:byte<short<int<long         默认int

         小数:float<double                     默认double

一般性原则: 尽量使用最小范围 

非数字:

           字符char :只能放一个字符,必须用单引号

           布尔Boolean: 只有True /False

计算机是二进制:0 1(连通 断开)

字节 1 byte= 8 bit (-128-- 127)//一个bit是两位  2的8次方除以2

短整数 short = 2byte(16bit)

整数 int=4byte(32bit)

长整数 long=8byte(64bit)     

float = 4byte

double=8byte

赋值

变量名规范规则

(建议)1.首字母小写的 驼骆峰 myFristName

注意

float f = 123.4 报错

因为默认为double须在后加f

float f = 123.4f

整数默认int但是=自带转换器所以不报错

2.变量名不能重复

3.变量区分大小写(Java区分大小写)

4.(局部)变量用之前得赋初值

5.变量的范围:最近一对大括号{}

强制性命名规则

首字母 + 其他

myfirstnum = m +  yfirstnum

a.首字母 :各国语言 ;中文;英文;钱¥ (不能数字)

b.其他 :  a(首字母的范围) + 数字

c.不能是关键字

java可以直接表示的进制

二进制:0b数字 

0b011表示十进制3  (2的零次方)1 *1+ (2的一次方)2 *1=3

十进制:默认

98  8* 1(10的0次方) +  9 * 10(10的1次方)=98

八进制:0数字

011 表示9 8的0次方+ 8的一次方 = 9          072 (8的零次方)1*2 + (8的1次方)8 * 7=58

十六进制:0x数字 (0-9  A- F)

0xA2  2*1+10*16

示例

使用以下变量存储手机信息 并打印输出

品牌 iPhone

尺寸 4.0

像素  1080px*768px

架构 5288

        System.out.println("-------------------------");
        String phone = "iphone" ;
        double size= 4.0;
        String px = "1080px*768px";
        int price = 5288;
        System.out.println(phone+","+size+","+px+","+price);

小红成绩80,小绿成绩比小红多10分,输出小绿成绩

        System.out.println("-------------------------");
        int xhSorce = 80;
        int xlSorce = xhSorce+10;
        System.out.println(xlSorce);

从控制台输出小红的三门课程成绩,计算:1.java课程和sql分数之差;2.3门课的平均成绩

从控制台输入:Scanner (属于jdk类库,需要手工引入)

自动导包问题:

开启:file-setting - Editor-general-auto import 

注意:如果没有自动导入,可能原因就是该类在环境中纯在重名需要手动导入:alt+回车

默认包:java的默认包就是java.lang,即该包中的所有类会自动给导入

Scanner中有很多类型的输入方法,但是没有接受char的方法。

接收字符串:next(),nextline()

String name = input.next();
String name2 = input.nextLine();

区别:next()不接受空格回车 会把空格,回车当终止符号

           nextline()接收空格回车

注意:

int是整数,所以int num= (1+1+2)/3,则num的值是1

Scanner input = new Scanner(System.in);
        System.out.println("请输入姓名");
        String name = input.next();
        String name2 = input.nextLine();

        System.out.println("请输入java成绩");
        int javaSorce = input.nextInt();
        System.out.println(javaSorce);
        
        System.out.println("请输入sql成绩");
        int sqlScore = input.nextInt();

        System.out.println("请输入html成绩");
        int htmlScore = input.nextInt();

        int between =javaSorce - sqlScore;
        System.out.println("java比sql多"+between);
        int avgScore = (javaSorce + sqlScore + htmlScore)/3;
        System.out.println("平均分:"+avgScore);

数据类型的转换:

自动转换

范围小的类型  可以自动转换为范围大的

double  a = 3.14f;

范围小的类型 遇到范围大的类型自动转换为范围大的

int b =10 +3.14 ; 报错 int遇到double 整体转换为double

整数数值范围小于小数数值范围

最大的是字符串:任何类型遇到字符串自动转换为字符串

        System.out.println(""+10+1);//101 转为字符串拼接
        System.out.println(10+""+1);//101 转为字符串拼接
        System.out.println(10+1+"");//11  10+1还未遇到字符串先

char<int

java默认使用的是unicode编码(兼容于ascii)

char ch=‘A’;

        char ch = 'A';
        System.out.println(ch);//A
        System.out.println(ch+0);//65自动转为整数类型

强制转换

范围大的 赋值给 范围小的 必须强制转换

通用写法:

范围小的 = (小类型)范围大

float 特殊:

        float f2 = 1234.4f;
        int myNnm2 = (int)f2;

练习

已知圆的半径的radious = 1.5 ,求圆的面积

double radious = 1.5;
double pai = 3.1415926;
double area = pai * radious * radious;
System.out.println(area);

apple电脑市场份额20,今年增长了9.8%,求今年的份额;

int fenE = 20;
double jinNianFenE = fenE * (1+9.8/100);
System.out.println(jinNianFenE);

运算符号

/ 除 

%求余数 也是取模

示例
//46天包含几周零几天
int weeks = 46/7;
int days = 46%7;
System.out.println(weeks+"\t"+days);

//商场搞活动100当中120花,420付多少钱?
int money = (420/120) * 100 + (420 % 120) ;
System.out.println(money);

关系运算符(比较运算符)

>         <         >=         <=         ==         !=(非)

字符串的运算符:

相等 equals()         不等  !equals()

关系运算符的运算结果都是boolean True False

示例
//输入张三成绩,与李四80分,是否比李四大
Scanner input = new Scanner(System.in);
System.out.println("请输入张三成绩");
int zsScore = input.nextInt();
System.out.println(zsScore > 80);

表达式:

System.out.println( (34*23 ) > (23*6) );//True

例题

输入三位数,求各个位数之和

        Scanner input = new Scanner(System.in);
        System.out.println("请输入三位数");
        int num = input.nextInt();
        int geWei = num / 1    % 10 ;//123 -> 3
        int shiWei = num / 10  % 10;//123 -> 12 -> 2
        int baiWei = num / 100 % 10;//123->1
        System.out.println(geWei+shiWei+baiWei);

两个数交换

位运算(二进制效率最高)

中间变量、加减法、位运算

        System.out.println("请输入num1" );
        int num1 = input.nextInt();
        System.out.println("请输入num2");
        int num2 = input.nextInt();

        int temp = num1;
        num1 = num2;
        num2 = temp;

        System.out.println(num1);
        System.out.println(num2);

细节

%求余:有符号问题,结果永远与被除数一致(正负 (左边那个数))

!:不等于

&& ;|| :且和或 (根据真值表判断,短路特性)

&;| :且和或 (一切都判断)

i++ : 先加后用 (自增+1)

--i  :先减后用

byte和short 的特例

byte+byte . short + short ;是int类型

byte = byte + byte ;是错的

byte += byte ;是对

字符串判断相等

str1.equals(str2)

三目运算

x = 布尔判断 ?a : b ; 

        String result = 10 >2 ? "hello":"world";
        System.out.println(result); //hello

为真执行左,为假执行右

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值