java基础

java

前言

java三大版本

  • Java SE: 标准版
  • Java ME:嵌入式开发
  • Java EE:企业级开发

JDK: java开发者工具

JRE:java运行时环境

JVM:java虚拟机

java程序运行机制

编译型

解释型

在这里插入图片描述

java基础

注释、标识符、关键字

注释
单行注释:   //
多行注释:  /*  注释 */
/*我是多行注释
  我是多行注释
  我是多行注释
 */
JavaDoc(文档注释):    /** */
/*
*
*
 */
关键字

在这里插入图片描述

标识符
  • Java 所有的组成部分都需要名字。类名、变量名以及方法名都被标为标识符。

  • 所有的标识符都应该以字母(A-Z 或者a-z) ,美元符($)、或者下划线(_) 开始

  • 首字符之后可以是字母(A-Z 或者a-z),美元符($) 、下划线( )或数字的任何字符组合

  • 不能使用关键字作为变量名或方法名。

  • 标识符是大小写敏感的

  • 合法标识符举例: age、$salary 、_ 1. value

  • 非法标识符举例: 123abc、-salary. #abc

  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

数据类型

语言
一、强类型语言

​ 强类型语言是一种强制类型定义的语言,一旦某一个变量被定义类型,如果不经过强制转换,则它永远就是该数据类型了,强类型语言包括Java、.net 、Python、C++等语言。

​ 举个例子:定义了一个整数,如果不进行强制的类型转换,则不可以将该整数转化为字符串。

二、弱类型语言

​ 弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。弱类型语言包括vb 、PHP、javascript等语言。

java数据类型
概念

基本类型(primitive type)

在这里插入图片描述
引用类型(reference type)

在这里插入图片描述

整数拓展

:进制 二进制0b 十进制 八进制0 十六进制0x

int i  = 10;
int i1 = 010; //八进制
int i2 = 0x10;//十六进制 0~9 A~F

10     8     16
浮点数拓展

float 有限 离散 舍入误差 大约 接近但不等于

最好完全避免使用浮点型进行比较

银行业务怎么表示?

BigDecimal 数学工具类

字符拓展

所有的字符本身还是数字

编码 Unicode 2字节 0~ 65536 Excel 2^16 65536

char c1='\u0061';

转译字符

\t 制表符

\n 换行

boolean 默认 true

类型转换

概念

由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

在这里插入图片描述

运算中,不同类型的数据先转化为同-类型,然后进行运算。

强制类型转换

高到低 (类型)变量名

自动类型转换

低到高

注意点

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转换到低E容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题!

变量、常量

变量

变量是什么:就是可以变化的量!

​ Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

​ Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法的标识符。
  • 变量声明是- -条完整的语句,因此每一个声明都必须以分号结束
变量作用域
  • 类变量

    static

  • 实例变量

    从属于对象;如果不自行初始化,这个 类型的默认值 0 0.0

    布尔值:默认为false

    除了基本类型,其余的默认都是null

  • 局部变量

    只在当前方法内有效,必须声明和初始化变量值

public class Variable{
static int allClicks=0;   //类变量
String str="hello world"; // 实例变量
public void method(){
int i =0; //局部变量
}
常量

常量(Constant):初始化(initialize)后不能再改变值! 不会变动的值。
所谓常量可以理解成-种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

final常量名=;
final double PI=3.14;

常量名一般使用大写字符。

static final 修饰符不存在先后顺序

变量命名规范
  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:。例如:monthSalary 除了第一个单词以外,后面的单词首字母大写
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线: MAX _VALUE
  • 类名:首字母大写和驼峰原则: Man, GoodMan
  • 方法名:首字母小写和驼峰原则: run(), runRun()

运算符

基本运算符
  • 算术运算符:+,-,*,/,%,++,–
  • 赋值运算符=
  • 关系运算符:>, <, >=, <=, ==, != instanceof
  • 逻辑运算符:&&(与), II(或), !(非)
  • 位运算符:&, |, ^, ~, >>, <<, >>>了解! ! ! )
  • 条件运算符? :
  • 扩展赋值运算符:+=,- =, *=, /=
public class Demo02 {
    public static void main(String[] args) {
        long a = 12111131415415L;
        int b=123;
        short c=10;
        byte d=8;

        System.out.println(a+b+c+d);//long
        System.out.println(b+c+d);//int
        System.out.println(c+d);//int
    }
}
//当运算过程中有long型的,则结果为long型
//其他有无int 为int型

补充:

% 取余(模运算)

++i 先将i的值赋给变量,再自增

i++ 先自增,再将i的值赋给变量

短路运算
public class Demo05
public static void main(String[] args) {
//与(and)_ 或(or) 非(收反)
boolean a = true;
boolean b = false;
System.out.println("a && b: "+(b&&a)); //逻辑与运算:两个变量都为真,结果才为true
System.out.println("a||b:"+(a||b)); //逻辑或运算: 两个变量有一个为真, 则结果才为true
System . out. println("!(a8&b):"+!(a&8b)); //如果是真,则变为假,如果是假则变为真
//短路运算
int c=5;
boolean d=(c<4)8&(c++<4);
    System.out.println(d);
    System.out.println(c);
}    
}
false    5

判断 与逻辑运算 如果前一个为假,则后面不会运算,即为短路运算。

位运算
public class Demo06 {
public static void main(String[] args) {
A = 0011 1100
B = 0000 1101
------------------------
A&B=0000 1100   与
A|B=0011 1101   或
A^B=0011 0001   异或(相同取0,不同取1~B=1111 00102*8=16 2*2*2*2
 效率极高!!!
<<  *2
>>  /2
 0000 0000    0
 0000 0001    1
 0000 0010    2
 0000 0100    4
 0000 1000    8
 0001 0000    16
}
}
拓展运算符
public class Demo07 {
public static void main(String[] args) {
inta=10;
intb=20;
a+=b; //a = a+b
a-=b; //a = a-b
System.out.println(a);
//字符串连接符+ , string
System.out.println(""+a+b);变为字符串再连接
System.out.println(a+b+"");先运算
}
}

结果: 30   1020  30
    
三元运算符
public class Demo07 {
public static void main(String[] args) {
//  x ? y : Z
//如果x==true,则结果为y,否则结果为z
int score = 50;
String type = score <60 ?"不及格”:"及格”; //必须掌握 (精简代码)
//也可以用 if
System. out. print1n(type);
}
}

优先级()

包机制、JavaDoc

包机制

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:

package pkg1[. pkg2[. pk3…]];

一般用公司域名倒置作为包名;

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能
import package1[. package2…].(classname|*);

*:通配符,表示所有

Java Doc

javadoc命令是用来生成自己API文档的

参数信息

  • @author作者名
  • @version版本号
  • @since指明需要最早使用的jdk版本
  • @param参数名
  • @return 返回值情况
    JavaDoc
包机制

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:

package pkg1[. pkg2[. pk3…]];

一般用公司域名倒置作为包名;

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能
import package1[. package2…].(classname|*);

*:通配符,表示所有

Java Doc

javadoc命令是用来生成自己API文档的

参数信息

  • @author作者名
  • @version版本号
  • @since指明需要最早使用的jdk版本
  • @param参数名
  • @return 返回值情况
  • @throws异常抛出情况
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值