【JavaSE】高淇300集第一季笔记

本文是关于JavaSE的学习笔记,涵盖了学习习惯的培养、Java语言的发展历史、JDK的详解、第一个Java程序的编写、注释与编辑器的使用、标识符、数据类型等内容,旨在帮助初学者全面理解JavaSE的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------------------------------------------------------1、如何学习--------------------------------------------------------------

1、培养高手是培养高手的学习习惯。

2、Java

             企业级服务器端开发

             Android开发

       Object-C(IOS)

       C#(.NET平台)

       PHP

       C++

       C

        ……

------------------------------------------------------2计算机语言发展------------------------------------------------------

所有计算机都是基于冯诺依曼体系结构

第一台计算机诞生于费城

1、计算机语言发展史(向着人更加容易使用的方向发展)

        一代:机器语言

        二代:汇编语言

        三代:高级语言

     面向过程:C、Fortran、COBOL、Pascal、ADA

     面向对象:C++、Java(跨平台)、C#

2、java历史:

3.Java核心优势:跨平台

4.java三大版本的区别

          JavaEE:定位于服务器端的应用

          JavaSE:定位于个人计算机上的应用

          JavaME:定位于消费性电子产品的应用

----------------------------------------------------------------------------------3JDK--------------------------------------------------

1.JDK、JRE、JVM的区别:

         JDK:JavaDevelopment Kit Java开发工具包

        JRE:JavaRuntime Environment Java运行时环境

        JVM:JavaVirtual Machine  Java虚拟机

        JDK(JRE(JVM))



2.JDK的下载安装:

3.环境变量配置:

         JAVA_HOME:C:\Program Files\Java\jdk1.6.0_14

          path(执行dos命令,系统会在path指定的路径中寻找该命令对应的可执行文件)

                       将"%JAVA_HOME%\bin"增加到path中;多个目录用分号隔开

           classpath

                        JDK5.0以上版本,可以不对其进行配置!

4.测试安装成功:

JDK安装到C盘就可以,不会影响电脑速度

-----------------------------------------------------4第一个程序----------------------------------

安装目录、开发目录尽量用英文。

1.好的文本编辑器:Notepad++、UltraEdit、EditPlus

2.第一个程序:

public class Welcome{
	public static void main(String[] args){ //args即arguement即参数的意思
		System.out.println("Hello World");
	}
}

3.Dos命令cd的意思:change directory

 

-------------------------------5 helloworld深化_文本编辑器的使用_注释--------------------------------

IDE集成开发环境(Integrated Development Environment)

        JBuilder(基本淘汰)

        Eclipse(重点)

        NetBeans

Java区分大小写

~~~~~~~~~

注意:

不是一个Java文件对应一个class,一个Java文件可有多个class类,但是一个类对应一个字节码文件(即.class文件)

若有个class前面加了public,则此class的类名必须和文件名一致,public类只能有一个,其他类可以有多个。

/**/注释不可嵌套

~~~~~~~~~

常用dos命令

          cd:进入一个目录,changedirectory

          cd..:

          dir:查看目录里的内容

          上下键:查找敲过的命令

          Tab键:命令自动补齐

--------------------------------------------------------------------6标识符---------------------------------------------

1.标识符

/*
 *测试标识符的写法
*/
public class Welcome{
	public static void main(String[] args ){
		int $abc=3;
		int _123=3;
		//int 123abc=6;//标识符首字母不能以数字开头
		//int abc#=3;//标识符不能包含除了字母、数字、下划线、$之外的其他字符
		//int class=3;//不能用关键字来命名
		int 尚学堂=10;//java内部采用Unicode字符集,universal,两个字节表示一个字符,1字节=8位,2的8次=256,2个字节=16,2的16次=65536,能表示6万多个字
	}
}

2.字符集简(unicode和GBK)

           ISO8859-1   西欧字符集(一个字节表示一个字符)

           BIG5        台湾的大五码,表示繁体汉字

           GB2312      大陆使用最早、最广的简体中文字符集

           GBK         GB2312的扩展,可以表示繁体中文

           GB18030    最新GBK的扩展,中国所有非手持/嵌入式计算机系统的强制实施标准,可以表示汉字、维吾尔文、藏文等中华民族字符

           Unicode    国际通用字符集,(两个字节表示一个字符)-->UTF-8、UTF-16(变长的,英文1个字节,阿拉伯文2个字节,中文3个字节)

3.各种字符集的关系

           GB18030(GBk(GB2312(ISO8859-1)))

           BIG5(ISO8859-1)

           Unicode(ISO**59-1)   GB18030与BIG5与Unicode不兼容


-------------------------------------------------------------7  整数---------------------------------------------------------

java是一种强类型语言,每个变量都必须声明其类型(因为java运用太广,从服务器到手机,跨很多平台,有些对内存资源要求比较苛刻,要用少字节的类型,有的地方无所谓,如服务器环境)

 

1.数据类型:

          1.基本数据类型(8种)

                 1.1数值型

                          1.1.1整数类型(byte,short,int,long)

                          1.1.2浮点类型(float,double)

                 1.2字符型(char)

                          1.3布尔型(boolean)

         2.引用数据类型

                  2.1类(class)

                  2.2接口(interface)

                  2.3数组

 

                byte   占1个字节    表示范围:-128~127

                short    2                     -32768~32767(大约正负3万)

                int      4                    -(2的31次)~(2的31次-1)(大约正负21亿)

                long    8                    -(2的63次)~(2的63次-1)                

 

        

2.进制转换_编程中的L问题

public class TestDataType{
	public static void main(String[] args){
		int a=10;       //默认都是表示十进制的,
		int a2=010;     //定义八进制数,八进制首字符为0,输出结果:8
		int a3=0x10;    //定义十六进制数,输出结果:16
		int a3=0xf;    //定义十六进制数,输出结果:15
		System.out.println(a);
		byte b=200;
		System.out.println(b);//报错,200不能用byte来表示,超范围了
		System.out.println(Integer.toBinaryString(a));//将a转为二进制数,输出结果:1010
		System.out.println(Integer.toOctalString(a));//将a转为八进制数,输出结果:12
		System.out.println(Integer.toHexString(a));//将a转为进制数,输出结果:a
	
		int a5=10;//Java整型常熟默认为int型,即已定义a5为int型,而数字10前面什么都没写,即默认为int型,a5与10类型匹配,不会出出错
		long a6=200;//200没有超过long的表示范围
		byte b2=100;//若果数据的大小没有超过byte/short/char的表述范围,则可以自动转型
		//byte b2=200;//超过范围,报错,丢失精度
		long a7=11111111323;//报错,11111111323超出了long的表示范围
		long a7=11111111323L;//在11111111323后加L(大写小写都可,但小写容易看成数字1)即可把此数转为long类型的数据(默认为Int)
	}
}

---------------------------------------------------------------8 浮点型-------------------------------------------------------

1,浮点数浮

        float         4字节

        double        8字节

public class TestFloatType{
	public static void main(String[] args){
		double d=3.14//整形默认为int,浮点型默认为double即默认3.14为double,且已定义d为double,
		float f=6.26F //将6.26转为float,即6,。26用4个字节表示,变量f用4个字节表示,不会出错
		double d2=314e-2;//采用科学技术方的写法
		System.out.println(d2);//输出结果:3.14
		
		float f1=0.1F;
		double d3=1.0/10;
		System.out.println(f1==d3);  //false,浮点数在内存里表示是有误差的,内存里可能一个表示是0.1,另一个是0.09999999,浮点数算比较运算时尽量避免使用比较运算符
		
	
	}
}

2.浮点数误差问题

         int型表示范围大约正负21亿,float表示范围正负(3.403乘以10的38次)为何同为4个字节表示,差距这么大呢?

                int用4个字节表示的-(2的31次)~(2的31次-1)其中的每个数都是精确表示的

                而float表示的正负(3.403乘以10的38次)这么多数(近似无穷多个),不能精确表示所有小数,有舍入误差

                浮点数存在舍入误差,很多数字不能精确表示,如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类

                Long8个字节,可以表示很大的整数,但若超了范围,可用另一个类BigInteger

----------------------------------------------------------------9 char与double----------------------------------------------------

           char是在0~65535范围,运算时直接当做整数来运算,可以把0~65535之间的整数直接转型为char。

public class TestFloatType{
	public static void main(String[] args){
		char c1='a';
		char c2='上';//java内部采用unicode字符集(通用字符集),2个字节,表示65536个字符(0~65535)
		char c3='\n';
		System.out.println(c1);
		System.out.println(c3);
		System.out.println(c2);
		
		char c4='a';
		int i=c4+2;
		System.out.println(i);//输出结果:99;a在ASCII表中对应97
		char c5=i;//报错,可能损失精度
		char c5=(char)i;//强制转型
		System.out.println(c5);
		
		//循环打印a-z
		for(int j=0;j<26;j++){
			char temp=(char)(c4+j);
			System.out.println(temp);
		}
		
		//java里的字符串,是定义成String类了
		String str="ahuisaxcuiashxuas";
		System.out.println("\n"+str);
	
		boolean b=true;//false
		if(true){
			System.out.println("true");
		}
		if(b){ //if(b==true)这样写不好
			System.out.println("true");
		}
	}
}

-------------------------------------------------10 类型转换--------------------------------------------------------------------------------

1.基本数据类型自动转换

           容量小的数据类型可自动转化为容量大的数据类型。(容量不是指字节数,而是指表述的范围。)

           特例:

                    可以将整型常量直接赋给byte,short,char等类型变量,而不需要强制类型转换,只要不超过其表数范围。

                            short b=12;//合法

                            short b=1234567;//非法


2.强制转型


//测试自动转型和强制转型
public class TestCastType{
	public static void main(String[] args){
		/*测试自动转型*/
		byte b=123;//byte的范围-128~127,整数123在byte的表示范围内,可以自动转型
		//byte b2=300;//报错,300不在-128~127之间
		//char c=-3;//报错,-3不在0~65535之间
		char c2='a';
		int i=c2;//char自动转为int
		long  d01=123422;
		float f=d01;//long可自动转为float,float4个字节,long8个字节,但是否可自动转换看的是表示范围而不是字节数。
		
		/*测试强制转型*/
		int i2=100;
		char c3=(char)i2;
		System.out.println(c3);
		
		int i3=-100;
		char c4=(char)i3;//-100超过char的表数范围,所以转换成完全不同的值。无意义的值!
		System.out.println(c4);
	}
}
	


类型提升问题

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值