栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA基础

Java三大版本

JavaSE:标准版(桌面程序、控制台开发…)
JavaME:嵌入式开发(手机,小家电…)(现在很少见)
JavaEE:E企业级开发(web端,服务器开发…)

JDK、JRE、JVM

JDK:Java Development Kit
JRE:Java Runtime Environment
JVM: JAVA Virutual Machine

Java程序运行机制

编译型:通过编译器将全部Java源代码直接翻译成计算机语言(将整本中文书翻译为英文)
解释型:边编译边翻译,执行什么翻译什么(将中文书中要看的翻译成英文)

程序运行机制:

将.java源文件通过Java编译器编译为.class字节码文件(预编译)。 将.class文件放入类加载器中,再通过字节码校验器进行校验,通过解释器进行解释运行。(JVM虚拟机)

JAVA注释:
单行注释://
多行注释:
文档注释(JavaDoc):
标识符:
关键字:
    abstract    assert      boolean     break       byte
    case        catch       char        class       const
    continue    default     do          double      else
    enum        extends     final       finally     float
    for         goto        if          implements  import
    instanceofint           interface   long        native
    new         package     private     protected   public
    return      strictfp    short       static      super
    switch      synchronized            this        throw
    throws      transient   try         void        volatile
    while
标识符注意点:
1.所有的标识都应以字母、美元符号、下划线开始
2.首字母之后可以是字母,美元符号、下划线或数字任意组合
3.标识符区分大小写
4.尽可能用英文命名
数据类型 强类型语言:

要求变量的使用严格符合规定,所有变量都必须先定义后才能使用

弱类型语言:

要求变量的使用符合规定

Java的数据类型 基本类型:
//八大基本类型
int num1=10;
byte num2=20;
short num3=30;
long num4=30L;//long类型要在数字后面加L
//小数:浮点型
float num5=50.1F;//float类型后加F;
double num6=3.1415926;
//字符
char name='国';
//字符串,String不是关键字二是类
//String namea="adsadwq";定义新的类namea
//布尔值
boolean flag=true;
//boolean flag=false;:
引用类型:类、接口、数组 字节

位(bit):计算机内部数据存储的最小单位,10101010为八位二进制数
字节(byte):是计算机中数据处理的基本单位,习惯用“B”表示
字符:是指计算机中使用的字母数字和符号
1B=8bit
1KB=1024B
1M=1024KB
1G=1024M

JAVA数据类型及扩展讲解:
        //整数拓展:	进制 二进制0b 八进制0 十进制 十六进制0x
 
			int i=10;
			int i2=010;//八进制
			int i3=0x10;//十六进制 0~9 A·F 
		//浮点数拓展 银行业务怎么表示?钱
		//用BigDecimal 数学工具类进行比较
			
		//float  有限 离散 舍入误差  结果是约数 接近但不等于  
		//double
		//最好完全避免使用浮点数进行比较
			float f=0.1f;
			double d=1.0/10;
			System.out.println(f==d);//false
			float d1=2312345431f;
			float d2=d1+1;
			System.out.println(d1==d2);//true  
		//字符扩展
			char c1='a';
			char c2='中';
			System.out.println(c1);
			//输出a
			System.out.println((int)c1);//强制转换,将a转译为ASCII码
			//输出97
			System.out.println(c2);
			//输出中
			System.out.println((int)c2);//强制转换,将中转译为ASCII码
			//输出20013
			//所有的字符本质还是数字
			//编码 Unicode 表:(97=a 65=A)2字节 可以表示0 - 65536 ,Excel最早的可以表示到2的16次方=65536
			//通过Unicode编码进行转译,可以表示U0000到UFFFF
			char c3='u0061';
			System.out.println(c3);
			//输出a,通过Unicode编码进行转译,'u0061'转译为
		//转译字符
			//  t 制表符
			System.out.println("hellotword");//输出hello	word(多了Tab)
			//  n 换行
			System.out.println("hellonword");
			
		//对象 从内存分析
			String sa= new String("hello word");
			String sb= new String("hello word");
			System.out.println(sa==sb);
			//false
			String sc="hello word";
			String sd="hello word";
			System.out.println(sc==sd);
			//ture
		//布尔值扩展
			boolean flag = true;
			if(flag==true) {};
			if(flag) {};
			//Java代码尽量精简
类型转换

由于JAVA师强类型语言,所以要进行有些运算时,需要用到类型转换
优先级
低---------------------->高
byte,short,char->int->long->flaot->double

package Demo01;

public class Demo01 {
	public static void main (String[] args) {
		int i=128;
		byte b= (byte)i;//byte 最大值为127,内存溢出
		//强制类型转换, 由高向低转换
		//自动转换,由低到高
		System.out.println(i);//128
		System.out.println(b);//-128
		
		System.out.println((int)23.7);//23
		System.out.println((int)-45.3f);//-45
		char a='c';
		int d=a+1;
		System.out.println(d);//100
		System.out.println((char)d);//d
	}
}
package Demo01;
 
public class Demo02 {
	public static void main(String[] args) {
		//操作比较大的数时,注意溢出问题
		//JDK7新特性,数字之间可以用下环线分割
		int money = 10_0000_0000;
		System.out.println(money);//1000000000
		int year =20;
		int total = money*year;
		System.out.println(total);//-1474836480计算时溢出,int不能超过21亿
		long total2 = money*year;
		System.out.println(total);//-1474836480 money与year默认为int,转换之前就已经计算溢出无法解决问题
		long total3 = money*((long)year);
		System.out.println(total3);//20000000000,先把计算式内的值转换为long
	}
}
变量

可以变化的量Java是强类型语言,每个变量必须声明类型Java变量是程序中最基本的存储单位,其要素包括变量名、变量类型和作用域。

  type  varName [=value][{,varName[=value]}];
// 数据类型 变量名=值:可以使用逗号隔开来声明多个同类型变量
注意事项

每个变量都有类型,看可以是基本类型也可以是引用类型变量名必须是合法标识符变量声明是一条完整的语句,每一个声明都必须以“;”结束

  public class Demo03 {
  	public static void main(String[] args) {
  		//int a=1,b=2,c=3;尽量少用类似将多个变量一同定义的方式,注意程序可读性
  		int a=1;
  		int b=2;
  		int c=3;
  		String name="shouzuodaitu";
  		char x='X';
  	} 
  }
变量的作用域

类变量 实例变量 局部变量

//Demo04类
public class Demo04 {//(类体)
	//定义属性:变量
	
	//类变量 static
	static double salsry = 2500;
	
	
	 String name;
	 char age;
	
	//main方法(主程序方法)
	public static void main(String[] args) {//(方法体-)
		
		//局部变量:仅在此方法中有作用,必须声明和初始化值(仅在相邻的两个大括号中间有用)
		int i=10;
		
		//变量类型  变量名 = new Demo04();
		Demo04  demo = new Demo04();
		System.out.println(demo.age);//输出0
		System.out.println(demo.name);//输出null
		
		//类变量 static
		System.out.println(salsry);
	}
	
	//其他方法
	public void add() {
		
	}
}
常量

初始化后不能再改变值(不会变动的值)

  public class Demo05 {
  	//static与final等为修饰符不存在先后顺序,final代表常量
  	static final int P=3;
  	public static void main(String[] args) {
  		System.out.println(P);
      }
  }
  
变量的命名规范

所有变量、方法、类名:见名之意,用英文命名(避免拼音或其他字符)类成员变量~~定义时用驼峰原则:第一个单词首字母小写之后每个单词首字母大写(userName、helloWord)局部变量:首字母小写,驼峰原则常量:大写字母与下划线(MAX_VALUE)类名:首字母大写,遵守驼峰原则方法名:首字母小写,驼峰原则(runRun()) Java语言支持的运算符

算术运算符:+, -, *, /, %, ++, –赋值运算符:=关系运算符:>,<,>=,<=,==,!=,instanceof逻辑运算符:&&,||,!位运算符:& ,| , ^, ~,>>,<<,>>>(了解)条件运算符? :扩展运算符:+=,-=,*=,/=

    public class Demo01 {
    	public static void main(String[] args) {
    		long a=1212121121212121l;
    		int b=120;
    		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,short与byte为同级类型计算,在java中用print输出会将此优先级的数转为int
    		System.out.println(c%d);//c/d取余数
    		
    		//++  --
    		int q=1;
    		int w=q++;//++在后先进行运算后+1;
    		System.out.println(w);//输出1
    		System.out.println(q);//完成w=q++后q+1;q=2
    		int e=++q;
    		System.out.println(e);//++q:先加1后运算;e=3
    		//--同理
    		
    		//幂运算 2^3,很多运算需要用工具类操作
    		double pow = Math.pow(2, 3);
    		System.out.println(pow);//8.0
    		
    		//逻辑运算符 与 &&(and);或 || (or);非 !(a&&b) (取反)
    		boolean a1 = true;
    		boolean b2 = false;
    		System.out.println("a1&&b2="+(a1&&b2));//逻辑与运算,都为真结果才为true
    		System.out.println("a1||b2="+(a1||b2));//逻辑或运算,只要有一个为真,结果就为true
    		System.out.println("!(a1&&b2)="+!(a1&&b2));//逻辑非运算,真变假,假变真
    		
    		//短路运算
    		int c1 = 5;
    		boolean d1= (c1<4)&&(c1++<4);
    		System.out.println(d1);//输出false
    		System.out.println(c1);//输出5,因为(c1<4)为假,在与运算中直接输出false,那么后续运算便不在执行,所以c1仍为5;
    		
    		//位运算
    		
    		System.out.println(2<<3);//输出16
    		
    		//
    		int z = 10;
    		int x = 20;
    		z += x;//z=z+x
    		System.out.println(z);//30
    		z -= x;//z=z-x
    		System.out.println(z);//z=30-20=10,注意z经过上一步运算后值为30,在经过此次运算结果又变为10;
    		
    		//字符串连接符 + ,String
    		System.out.println("结果"+z+x);//输出为:结果1020,+ 直接将字符连接在一起
    		System.out.println(z+x+"结果");//输出为:1020结果
    		
    		//三元运算符
    		//x ? y : z 举个例子:学好了 ? 吃穿无忧:喝西北风
    		//如果x为true,结果为y;反之结果为z
    		int score = 80;
    		int score1 = 50;
    		String type = score < 60 ? "不及格" : "及格";
    		String type1 = score1 < 60 ? "不及格" : "及格";
    		System.out.println(type);//及格
    		System.out.println(type1);//不及格
    		
    	}
    }

包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。包语句的语法格式为:
package pkg1[. pkg2[. pkg3...]];
一般利用公司域名倒置作为包名;为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包
使用"import”语句可完成此功能
import package1[.package2...].(classname|*);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781592.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号