JAVA基础

本文详细介绍了Java编程的基础知识,包括标识符的规则、数据类型的分类及其特点,如整数型、浮点型、字符型和布尔型。同时,讲解了变量的声明、赋值和类型转换,强调了Java中强类型语言的安全性。此外,还讨论了变量的作用域、常量的定义以及运算符的使用。最后,提到了Java中的注释和编码规范,以及Javadoc的使用,帮助理解代码的编写和维护。
摘要由CSDN通过智能技术生成
public class hello {   //文件名和类名必须保证一致  hello为类名
    public static void main(String[] args) {  //main为方法 主方法 和c的主函数类似
       System.out.println("Hello,world");
    }

代码如上

标识符

jave的类名 变量名 以及方法名都被称为标识符

所有的标识符都是字母 美元符,或下划线开头
** 不能有关键字作为变量名或方法名 **
jaiva 严格区分大小写

常见错误

int  2ab=2;//不能以数字开头
int  #rda=2;//不能以特殊字符开头
int -dad=2;//不能以一般运算符开头
)

注意string 不是关键字

不建议以拼音或者中文命名

java 支持中文命名
string 天才="是我“;但不建议这样做

java 注释

单行注释和多行注释和c/c++一样

java数据类型(基本类型)

java 为强类型语言

所有的变量必须先定义后才呢个使用
优缺点:安全但是运行的速度较慢
注意Java变量必须定义而且赋值后才能输出
(c/c++中只定义不赋值 根据定义再堆或者栈 会输出0或者随机只)

分类

.基本类型

1.数值型

  • 整数型
    1,byte型 占一个字节 c/c++无该类型
    2,short型 占2个字节
    3,int型 占4个字节
    4,long型 占4个字节
  • 浮点型
    1,float型 占4个字节
    2,double型 占8个字节
  • 字符型
    char型 占2个字节 c/c++中为一个字节
    2.boolean 型 占2个字节 其值 为true 或false c/c++中为bool型 占一字节

.引用类型

  • 接口
  • 数组
:
//八大数据类型
//整数
int num1=20;//最常用
byte num2=30;//注意范围为-127-128
short num3=54;
long num4=44L;//long类型数值要在后面加L以区分
//浮点型
float num5=2.23F//float类型要在后面加F以区分
double num6=2.345643;

//字符型
char a='加'//''才表示字符 而“”表示字符串
//string不是关键字 是一个类
//string a="天下“
//布尔值  表是非
boolean flag=true;
boolean af=false;


//八大数据类型
//整数
int num1=20;//最常用
byte num2=30;//注意范围为-127-128
short num3=54;
long num4=44L;//long类型数值要在后面加L以区分
//浮点型
float num5=2.23F//float类型要在后面加F以区分
double num6=2.345643;

//字符型
char a='加'//''才表示字符 而“”表示字符串
//string不是关键字 是一个类
//string a="天下“
//布尔值  表是非
boolean flag=true;
boolean af=false;:
[图片]
里插入代码片

  • 计算机内部数据最小储存单位 10011010是一个8位2进制数据 用b表示

  • 字节
    是计算机中数据处理的基本单位 用B表示
    1B=8b;

  • 字符
    是计算机中使用的字母 数字字和符号
    1byte表示一位
    1Byte 表示一个字节
    1Byte=8byte(1B=8b)
    1024B=1kB;
    1024kB=1M
    1024M=1G
    1024G=1TB

//表明可以输入2进制8进制16进制的数
//整数扩展: 二进制0b  八进制0  十进制  十六进制0x
int i = 10;
int i2 = 010; //八进制 8
int i3 = 0x10; //十六进制 16
1
2
3
4
//浮点数扩展:
//面试题:银行业务字母怎么表示钱? BigDecimal(数学工具类)
//float double是有问题的,**最好避免使用浮点数进行比较**
float f = 0.1f;  //0.1
double d = 1.0/10;  //0.1
System.out.println(f==d); //false
//浮点数 位有限,舍入误差,大约
//最好避免使用浮点数进行比较
float f1 = 23131313131f;
float f2 = f1+1;
System.out.println(f1==f2); //true
1//避免浮点数之间的比较
2
3
4
5
6
7
8
9
10
11
//字符扩展:所有字符本质还是数字
char c1 = 'a';
char c2 = '中';

System.out.println(c1);  //a
System.out.println((int)c1);/制类型转换,97
System.out.println(c2);  //中
System.out.println((int)c2);/制类型转换,20013

//编码 Unicode表(97=a,65=A)2字节 0-65536
//U000~UFFFF 十六进制(u0061=a,相当于十进制的97)
System.out.println('\u0061');  //a '\'是转义字符
1
2//字符在一定范围和int可以互用 
unicode 编码
3
4
5
6
7
8
9
10
11
12
//布尔值扩展
boolean flag = true;
if(flag==true){} //新手
if(flag){} //老手这样写 Less is More(代
//c/c++ 是bool
—— ——————————————

类型转换

char ,short,byte->int->long->float->double
低类型向高类型自动转化
高类型向低类型转换需要强制转换(用强制转换符**)必须**

public class dfdsfd {
	 public static void main(	String[] args) {
	     int i=128;
	     byte a=(byte)i;//由地类型高高类型的转化不加强制转换符会报错 byte占1个字节 -128-127;
	     System.out.println(a);//超出数据类型的范围会溢出
	    }
	

}

通过实验可以得出JAVA里的类型转化和C/c++种基本一致
可以看成下图
在这里插入图片描述
总结为横向是必须转的
纵向看2个数的数据类型由低到高转到数据类型相同为止
当然c/c++由高转低大多是不需要用强制转换的
图片注意点描述

对于float 和double 转为int 型的时候会取整

和c一致

public class dfdsfd {
	 public static void main(	String[] args) {
	    System.out.println((int)3.4);
	    System.out.println((int)3.5f);
	    }
	

}

输出都是3

char 和Int型的转化

public class dfdsfd {
	 public static void main(	String[] args) {
	    char a='a';
	    int b=a+1;
	    System.out.println(b);
	    
	    }
	

}
输出a==98

而字符转为int 需要强制转化


public class dfdsfd {
	 public static void main(	String[] args) {
	    char a='a';
	   // int a=98;
	    char c=(char)a;
	    System.out.println(c);
	    }
	
输出a
}

一般浮点数之间,浮点数和整数之家的运算可能会存在数据缺失问题
而不同整数间的转化运输 一般不会数据缺失
本质原因:浮点数在计算机内的储存转化的二进制可能会无限循环

jdk7新特性 下划线分割 不会被都进去


public class dfdsfd {
	 public static void main(	String[] args) {
	  //jdk7 特性 下划线分割
		 int a=100_123_1;
		 System.out.println(a);
		 
	    }
	

}

变量,常量,作用域

java中允许变量定义但不赋值 但不允许不赋值的变量输出
但c./c++中允许这样的变量输出 根据定义在栈或者在堆 输出为0 或随机数


public class dfdsfd {
	 public static void main(	String[] args) {
	int a=3,b=6,c=9;//不推荐
	int a=3;
	int b=6;//推荐这样赋值
	int  c=9;
	 
	    }
	

}

变量的作用域

3种变量的定义`
在这里插入图片描述

**在这里插入代码片**

public class dfdsfd {
	
	
	//实例变量,类的里面 方法的外面 从属与对象 可以不初始化 不初始化则返回这个类型的默认值
	//String型默认为null 数值类型默认值都为0或0.0
	//boolean型默认是false  除了基本类型其他默认都是null 
	String c;
	int age;
	
	 public static void main(	String[] args) {//main方法
	 //局部变量的位置 
		 int a=1;
		 System.out.println(a);
	 //该变量只能在该方法使用
	    }
	

}

实例变量的输出

在这里插入图片描述

类变量


public class dfdsfd {
	
	static String a;//返回null String 的s旭大写
	static int  b;//和实例变量一样 可赋值可不复制 不赋值则返回默认数值
	static  boolean c;//但相比可以直接输出
	//
	
	 public static void main(	String[] args) {//main方法
	System.out.println(a);
	
	System.out.println(b);
	System.out.println(c);
	默认输出 
	null
	0
	false
	    }
	

}

常量的设置

定义的形式
static final 常量类型 常量名 =数值


public class dfdsfd {
	//static是修饰符 放前方后都系可以
	//但3.不行
	1. final static int L=4;
	 2,static final int l=4;
	3.final int L static =4;
	 public static void main(	String[] args) {//main方法
	System.out.println(L);
	    }
	

}

在这里插入图片描述

基本运算符

在这里插入图片描述

关于关系运算符的返回值

c++中的返回值
在这里插入图片描述
java中的返回值
在这里插入图片描述
得出结论:java中 boolea中的数值为true 和false 不是0和1

自增自减运算符

和在cc++中的运算机制完全一致

在这里插入图片描述

幂运算

和c中几乎一样 调用函数
可能函数的形式不太一样
但思想一致
![

逻辑运算符

在这里插入图片描述](https://img-blog.csdnimg.cn/ccf23d98996b4f978b8380062121c618.png)

public class aaa{
	public static void main(String[] args)	
	{
	
	boolean a=false ;
	boolean b=true;
	System.out.println("a||b="+(a||b));//引号里面输出字符 外面输出 变量 2这旭用+链接
	System.out.println("a&&b="+(a&&b));
	
	
	
	}
	
}

关于位运算详见笔记

public class aaa{
	public static void main(String[] args)	
	{
	
	a+=b;//a=a+b;
	a-=b;//a=a-b;
	a*=b;//a=a*b;
	依次类推
	
	
	}
	
}

输出时的字符串连接符+

在这里插入图片描述

条件运算符 ?:

x? y:z
如果x这个语句为true 则该条件语句返回x 反之返回y

包机制

不要让包里面的名字重复
在这里插入图片描述
阅读阿里巴巴开发手册

JAVA Dos(该小结转在自[

参数信息

@author 作者名
@version 版本号
@since 指明最早用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
API文档:https://docs.oracle.com/javase/8/docs/api/

/**

  • @author Kuangshen

  • @version 1.0

  • @since 1.8
    */
    public class Demo05 {
    String name;

    /**

    • @author kuangshen
    • @param name
    • @return
    • @throws Exception
      */
      public String test(String name) throws Exception{
      return name;
      }
/**
 * @author Kuangshen
 * @version 1.0
 * @since 1.8
 */
public class Demo05 {
    String name;

    /**
     * @author kuangshen
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
    
}
————————————————

打开某个类所在文件夹下的cmd命令行
输入:javadoc -encoding UTF-8 -charset UTF-8 Doc(类名).java
会自动生成该类有关的API文档,查看文件夹发现多了一些文件
打开 index.html(首页)查看文档注释


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值