码迷,mamicode.com
首页 > 编程语言 > 详细

java基础语法

时间:2021-04-20 14:32:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:默认值   java虚拟机   异常   转义   lag   服务器   最小值   计算机   父类   

java简介

java安装时需要配置环境变量:

JAVA_HOME:jdk安装路径

path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

java的三大版本:

javaSE:标准版(桌面程序,控制台开发等。。。)

javaME:嵌入式开发(手机,家电。。已经放弃)

javaEE:E企业级开发(web段,服务器端)


jdk:java Development Kit(Java开发者工具)

jre:Java Runtime Environment(java运行时环境)

jvm:java Virtual Machine(Java虚拟机)

技术图片

java基础语法

拓展—计算机的计算机制

机器数和真值

一个数在计算机是通过2进制表示的,这是机器数。最高位是他的符号位,0为正,1为负。

ex:3的机器数为0000 0011,真值是3;

-3的机器数为1000 0011.真值是-3而不是131;

负数二进制计算:反码=符号位不变,原码所有位取反;补码=反码+1,此计算方式可逆

原码就是符号位加上真值的绝对值(第一位表示符号,其余位为数值)如8位2进制:

[+1]原 = 0000 0001

[-1]原 =1000 0001

8位2进制的取值范围是

[1111 1111,0111 1111]—>[-127,128]

但是人为规定Java中byte类型是-128,127。

原因是0会有两种表示方法+0和-0(1000 0000);印度人将-0为-128。设计的非常巧妙。

  1. 对于如果大于8位的有符号整数类型,-128的补码刚好是1000 0000(计算机是利用补码计算的);

  2. 127(0111 1111)加1(0000 0001)刚好等于-128(1000 0000),而-128(1000 0000)加1(0000 0001)刚好等于-127,形成了一个闭环,如时钟。

  3. 计算机中减法运算可以换算成加法运算:如8-1=8+(-1)其补码运算为:0000 1000+1111 1111=0000 0111(整数的原反补码相同刚好是7)

    而 -128+127—>为(1000 0000+0111 1111)刚好是-1(补:1111 1111)(反:1111 1110)(原:1000 0001)其中short的最小值是-32768,int最小值-(2的32次方)也是一样的道理。

    其中二进制位运算跟10进制乘法除法相同

    小数的二进制表示法:乘二去整

java数据类型

基本类型:数值数类型和boolean类型

整数类型

备注:

字节(byte)类型代表:2进制的11111111

位(bit):计算机最小存储单位,字节中每个1都是1位。

1B(字节)=8bit(位)

byte占1个字节:-128—127

short占2个字节:-32768—32767

int占4个字节:-2147483648—2147483647

long占8个字节:-9223372036854775808—9223372036854775807

浮点类型

float占4个字节

double占8个字节

char字符类型占2个字节

boolean类型只占1位只有true和false(即0和1)

整数和浮点数类型扩展

进制:

二进制表示:0b开头

8进制:0开头

十进制:正常数字

16进制:0x开头


flaot:有限的离散的,有舍入误差,接近但不等于;避免使用浮点数类型进行比较

例如:flaot f1=23123123123123;flaot f2=f1+1;

System.out.println(f1==f2);输出结果时true。

通常使用数据工具类:BigDeciml


字符拓展:

所有的字符本质还是数字,字符类型可以转化成数值类型(计算机原编码都是由01组成)

编码:Unicode编码占2个字节,通过编号标记汉字,可以处理任何语言的文字,最初时可以表示65536个字符(现已扩展)最初Excel也是最长有65536(格数)

例如:Unicode表中:a=97,A=65,字符还可以表示汉字

转义字符:\t:制表符(相当于Tab键);\n换行


布尔值扩展:

boolean flag=true;

  1. if(flag==true){};
  2. if(flag){};

1和2效果相同

电脑的32位和64位区别:

32位:只能用32位的CPU,最多支持4G内存

64位:能装32位和 64位的CPU,最多支持128G内存

“==”比较对象时会从内存分析内存地址是否相等

类型转换

变量计算时若没有比int类型更高的数据时,其默认结果为int类型,若有则自动转 成高类型
不同数据类型需要转换成相同类型才能运算(父类子类对象的操作也一样)
数据类型等级从低到高排序byte,short,char——>int——>double——>float——>long
int i = 128;
byte b =(byte)i;//防止内存溢出,byte-128-127
当由高转到低时强制类型转换语法:(类型)转换名
当数据类型由低转到高时自动类型转换
不能对布尔值转换
不能转换成不相干的类型
转换时会存在内存溢出或精度问题
float f=3.14F;
int a=(int)f;
输出:f=3.14 a=3;
int i = 100000000;
int money = 10_0000_0000;//java7新特性,数字可以用“_”连接
int year = 20;
int total = money*year;
System.out.println(total);//结果:-1474836480,计算的时候溢出了
long total2 = money*year;
System.out.println(total2);//还是:-1474836480,计算完成默认时int类型,计算完成后才转换成long这是有问题的,不能这样操作
//正确操作如下
long total3 = (long)money*year;//将任一数据转换成long(高级别的数据类型)后所有的数据都自动转换
System.out.println(total3);

变量

命名规范:

所有变量变量、方法、类名:见名知意

类成员变量:首字母小写和驼峰原则:moneySalary,出第一个单词外后续每个单词首字母都大写。

局部变量:首字母小写和驼峰原则

常量:大写字母和下划线:MAX_VALUE

类名:首字母大写和驼峰原则:GoodMan

方法名:首字母小写和驼峰原则:runRun();

//static修饰的变量属于类变量直接通过类名调用。
static double salary = 3333.33;
//属性:变量
int j;
//实例变量,从属于对象
//变量声明但未初始化,布尔值默认是false,基本类型默认值是0或0.0
//除基本类型,其他的默认值都是null
String name;
Demo01 d1;
//常量(constant):初始化之后值就不能变了,这是一个特殊的变量,一经声明不许改变
//常量通常用final修饰,通常用大写字母表示
final double PI = 3.14;
//main方法
public static void main(String[] args) {
    //java是强类型语言所有的变量必须声明
    //变量是Java最基本的存储单元z其要素包括变量名,变量类型,作用域
    //每个变量都有类型,可以是基本类型或者引用类型
    //变量名必须是合法标识符
    //变量声明是一条完整的语句,必须以;结束;
    //int a,b,c;

    int a=1,b=2,c=3;//局部变量,不建议这样做,注意可读性
     Demo03 demo03 = new Demo03();
    System.out.println(salary);

}

常量

//常量(constant):初始化之后值就不能变了,这是一个特殊的变量,一经声明不许改变
//常量通常用final修饰,通常用大写字母表示
final double PI = 3.14;

运算符

算数运算符:+ ,— ,* , /,%,++,——

%是模运算(求余),++自增a++即a=a+1,——自减

a++表示先赋值再计算

++a表示先计算再赋值

int a=1;

System.out,println(a++);//输出1

System.out,println(++a);//输出2

赋值运算符:=

关系运算符:>,<,>=,<=,==,!=,instanceof

返回结果是true或者false

逻辑运算符:&&,||,!

&&:逻辑与运算,相当于且也叫做短路与,两边都为真结果为真,若左边条件为假则短路不知行右边。

||:逻辑或运算,相当于或,有一边为真,结果为真

!:逻辑非运算,逻辑取反

* 位运算:&,|,^,~
* a=1010,b=0011
*a&b=0010//同是1为1
*a|b=1011//有一个是0则为0
*a^b=1001//相同为0
*~b=1100//取反

位运算符:&,|,^,~,>>,<<,>>>

//>>右移运算<<右移运算
System.out.println(2<<2);//右移2位相当于2*2*2即0010->1000
System.out.println(2>>1);//左移一位相当于2/2即0010->0001

条件运算符?:

x?y:z——>如果x为true则执行y,否则执行z

扩展运算符:+=,-=,*=,/=

a+=b表示a=a+b;其余三个也是一样的

顺序问题,第一个+号前是字符串时后续的都是拼接,不相加

int a=10,b=20;

System.out.println(""+a+b);//输出1020

System.out.println(a+b+"");//输出30

包机制

java的包机制相当于文件夹,归类管理所编写的代码

命名规则一般时公司域名的倒置:如www.baidu.com写成com.baidu.www

javaDoc

javaDoc命令时用来
生成自己的API文档

其参数信息一般包括:

@author作者名

@version版本号

@since知名需要最早使用的jdk版本

@param参数名

@return返回值情况

@throws异常抛出情况

命令行生成javadoc文档:

javadoc -encoding UTF-8 -charset UTF-8 +类的路径

idea 下:tools—>generate javadoc设置生成参数

java基础语法

标签:默认值   java虚拟机   异常   转义   lag   服务器   最小值   计算机   父类   

原文地址:https://www.cnblogs.com/piaocker/p/14672603.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!