【Java】语言基础

/ / 此文章内容近月会持续更新,目标最深刻的基础整理
/ / 写给现阶段的自己:注意细节,漏洞往往都出现在那些似是而非的地方;戒骄戒躁,脚踏实地的虚心学习

Java概述

  1. 什么是Java:一种高级编程语言。
    面向对象
  2. Java程序开发过程
    (1)源代码 . java文件
    —编译器(Javac)
    (2)字节码 .class文件
    —Java虚拟机(JVM)
    —Java启动器—运行
  3. 特点
    (1)擅于设计网络应用开发(EE、框架

    (2)跨平台(JVM:一处编译多处运行)
    (3)Java平台运行于纯软件平台(JVM+API)
  4. 优势
    (1)入门快
    (2)代码量少
    (3)代码质量高
    (4)开发效率高
    (5)避免平台相关性
    (6)一次编写,处处运行
  5. 应用领域
    各类应用,系统开发
    ex:应用程序、嵌入式系统开发、电子商务应用开发、企业应用开发、交互式系统开发、多媒体系统开发、分布式系统开发、web应用系统开发

开发准备

  1. JDK_开发环境
    (1)将压缩包解压到非中文目录下
    (2)将bin文件夹的绝对路径复制
    (3)计算机-属性-高级-环境变量-用户变量-名称:path-值:粘贴路径
    (4)验证是否配置成功:CMD窗口中输入:java -version
  2. IDE_开发软件
    (1)eclipse :主流的教育平台,都使用这一工具,建议初学者使用,以后再转其他工具也来得及
    (2)IDEA:新流行的企业开发平台

第一个Java程序

文本工具中编写一段Java程序
将拓展名改为.java(例如:test.java)
在cmd,进入程序文件所在盘(D:)
进入子文件夹(cd 文件夹名)
编译程序(javac test.java)
运行程序(java test.java)

语言基础

数据
  1. 什么是数据
  2. 数据类型
    (1)基本数据类型
    (2)引用数据类型
  3. 变量和常量
    (1)定义:
    (2)声明:
    (3)变量分类:
1.类型
———— 基本类型
(1)整数*6
1)整形*4
byte:8位(占用空间相比int要小1/4,其他同理),-128~127-2^7~2^7-1),默认值:0
short:16位,-32768~32767-2^15~2^15-1,默认值:0
int:32位,-2147~2147_10位(-2^31~2^31-1),默认值:0
long:64位,9_19位(-2^63~2^63-1),默认值:0L
2)浮点型*2
float:32位,单精度,默认值:0.0f,表示范围:很大;
double:64位,双精度,默认值:0.0d,表示范围:很大很大;
注:声明一个浮点数默认是double类型的,用float定义的变量存储时必须在浮点数后面要加F
注:单精度与双精度的区别
在计内占4/8字节,有效数字8/16位,表示范围不同,单精度程序处理速度较快
(2)字符
char:16位,0~65535,可以存储任何字符
(3)布尔
boolean:1位,true/false,默认false
————引用类型
(1)默认值:null2)类型:数组、枚举、接口、类(对象)、字符串
(3)概述:引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为特定类型,声明后不能再改变
(4)数组:存储事先声明好大小的相同数据类型的集合,数组存储下标从0开始,元素默认值为其数据类型默认值
int[] a=new int[3];
int[] b= {1};
—————基本数据类型&引用数据类型:区别
(1)基本数据类型在被创建时,在栈上给其划分一块内存,,将数值存储在栈上;
(2)引用数据类型在被创建时,在栈中给其引用(相当于C指针)分配内存,对象的具体信息存储在堆内存上,然后由栈引用指向堆中对象的地址

2.位置
(1)局部变量:必须赋初始值,只在方法体内有效(通过方法返回值才能将局部变量值传出来)
(2)全局变量:可不赋初始值,默认有默认值,全类有效
public class Demo {
	long p1;     //默认初始值:0
	long p2=10;  //输出10
	public static void main(String[] args) {
		long l=0;
//		long l;    Error:局部变量必须赋初始值
	}
}

(4)变量三要素:
数据类型 、变量名、初始值
4. 数据类型转换

0.由小到大:byte-short-char-int-long-float-double
其他如String也可以进行转换,boolean不参加转换
1.不能对boolean类型进行类型转换。
2.不能把对象类型转换成不相关类的对象。
3.在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
4.转换过程中可能导致溢出或损失精度
5.浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
6.必须满足转换前的数据类型的位数要低于转换后的数据类型,
字符型转换成整形要预先是整形字符
7.整型、实型(常量)、字符型数据可以混合运算。
运算中,不同类型的数据先转化为同一类型,然后进行运算。
例如byte,short,char 在做运算的时候,自身先转换为int ,再运算;
混合运算时,结果是最大的类型

(1)由大转小—强制转换()
(2)由小转大—自动转换

public class Demo {
	public static void main(String[] args) {
		long l=10;
//		int i=l;   Error:大不能直接给小赋值
		int i=(int)l; //强制转换,不报错
		int j=10;
		long k=j; //自动转换,不报错
		char c='A';
//		char c='A4';  Error:字符只支持单个任意字符
		String str="wo啥都行^_^!"; //字符串可以多个任意字符
		//对于画蛇添足的强制转换,系统也不报错
		int c = (int)1234;        
		char ch = (char)('A'+4);  //此时控制台输出:E
	}
}
运算符

1. 分类
(1)算术 : +,-,*,/ ,% ,++,- -
1) / 和 % 的区别?
/ => 取商
% => 取余数
2)a++ : 先取a的值,然后再加1
++a : 先加1 ,再取a的值
(2)关系 : > < == != >= <=
(3)逻辑:& | !&& || ^
1)与‘&’:遇假则假
2)或‘ | ’:遇真即真
3)逻辑与‘&&’:短路运算符,如果第一个为假,则结果必为假,不执行后面的语句
4)逻辑或‘||’:短路运算符,如果第一个为真,则结果必为真,不执行后面的语句
5)逻辑异或‘^’:同假异真
注意:&和&&的区别、|和||的区别:单个的需要前后都判断后再得出结果;两个的,对于&&来说如果第一个为假,则后面的不执行,直接得出结果为假。
(4)连接
+
(5)扩展
+= ,-= , =,/=,%=
eg: a+=b(效率高)=> a=a+b
(6)三目
<表达式 1>?<表达式2>:<表达式3>
判断表达式1的真假,真则该三目运算符值为表达式二,反之为表达式三
(7)赋值
=
将后面的值赋值给前面的,注意区分=/==
2. 运算符优先级

注释

给人看的,不参与程序的执行,用以解释代码,方便团队合作、二次开发

(1)	//单行注释
(2)	/*多行*/
(3)
/*
*文本注释
*/
标识符&关键字
  1. 标识符
    (1) 由数字、字母、_ 、$ 组成
    (2)不能由数字开头
    (3)不能是java的关键字
  2. 关键字
    (1)关键字是 java 里面具有一定意义的标识 ,不能作为标识符使用;所有关键字都是小写字母
    (2)java 有2个(保留)关键字:goto、const ,他俩也不能作为标识符,算关键字
    (0)注意:null是关键字、一个符号,代表不确定对象,只能赋给引用类型变量,不能赋给基本类型变量;NULL不是关键字,代表空地址。
    String…不是,class、int、this、super、goto…是
//		int null=0;		此处报错
		int NULL=0;   //此处不报错
权限修饰符

另参见:【Java】修饰符

流程控制语句
  1. 顺序结构:自上而下,自左而右执行顺序

  2. 分支结构:
    (1)单分支:
    1)if (boolean表达式){}else{}
    2)if(){}
    注意: 如果判断 后面就有一个语句,大括号也可以省略,但是不建议省略
    (2)多分支:
    1)if(boolean类型){}else if(){}else if(){}…else{}
    2)switch(定值){}
    定值类型:int类型兼容的(int,byte,char,short)jdk1.7才有String ,jdk1.5枚举
    (3)循环结构
    1)for(变量的初始化;循环条件;变量的增减变化){
    循环体
    }
    2)while(循环条件){循环体}
    3)do{循环体} while(条件)
    3个循环什么区别? 什么时候用for 什么时候用while ,什么时候 用 do while
    ——
    当你知道循环次数的时候用for
    while 不知道循环次数
    do while ==》 无论条件是否成立, 肯定先执行 一次循环事件
    (4)跳出语句
    break :停止循环,跳出当前循环语句(非循环语句不算)
    continue:停止当次循环,然后继续下一轮循环

代码书写规范
  1. 多单词组合用驼峰标识
  2. 类名首字母大写、变量名小写、常量名大写
  3. 命名语义化
数组
  1. 定义: 相同数据类型的统一管理,在内存中开辟一段连续的空间 ,是一样类型的
  2. 作用: 方便查找
  3. 数组如何定义?
    数据类型 [] 数组名 = new 数据类型[长度]; // 动态初始化
    数据类型 [] 数组名 ={数据1,数据2,。。。};
  4. 如何使用数组
    通过 下标 ,下标从 0开始,到 长度-1
  5. 数组元素 有默认的初始值
    整型就是 0 浮点 0.0 引用类型 null
  6. 数组的遍历
    属性 长度 ==》 数组名.length
  7. 数组的排序 :
    快速排序, 冒泡,二分法,插入,希尔
  8. 多维数组
    二维
    定义: 数据类型 [][] 数组名 =new 数据类型[][];
    注意:开辟空间的时候!长度给值 必须从高维 往低维 赋值
    数组的扩容
方法 (函数):
  1. 含义:完成特定功能的代码块
  2. 作用:
    1)减少代码量
    2)方便主函数调用
    3)可以重复使用
    4)方便后期维护
  3. 格式
 public static 返回值类型    方法名(参数列表){
			 	 [return 语句;]
			 }
  1. 返回值类型:
    (1) 8种基本数据类型
    (2)引用类 型 String 数组
    (3) void:无返回值
  2. 方法名命名命名规则: 首字母小写和变量一样,驼峰标识,语义化
  3. 方法重载 :
    格式:方法名必须相同,参数列表必须不同(参数的类型,个数,顺序),方法的返回值类型是否相等不影响重载
    作用:程序设计方便,提高效率
  4. 方法重写:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值