java语法基础
来源:互联网 发布:种植牙的利与弊 知乎 编辑:程序博客网 时间:2024/05/18 00:25
以前学过c语言的基础没怎么接触过java,自学视频和查阅相关资料后总结java基础:
一、JDK、JRE、JRE的内容及区别:
1、JVM是Java虚拟机,它是Java代码能跨平台运行的原因。JRE是Java运行环境,它包含JVM和Java程序所需的核心类库。
JDK是Java开发工具包,它包含JRE和Java开发工具。JDK包含JRE,JRE包含JVM
2、JDK 安装完成后环境变量的设置:
固定方式:
我的电脑---属性---高级---环境变量---path
把命令所在的JDK安装的bin目录复制粘贴到path变量的值里面,放在最前面,末尾用“;”隔开。
完成后要重启DOS命令行才能用配置好的命令,不要用设置path变量前开启的DOS命令行
替换配置:创建一个新的变量 如Java_Home=D\java\jdk\bin;然后添加到系统变量中,然后在 path前面添加%Java_Home%\bin 这样即使目录有变化,也只需修改Java_Home的值,path值不用变。%%是用来动态获取某个已经存在的环境变量的值
临时配置:
用DOS中的set命令:
set path=D:\jdk\bin 回车 配置环境变量; set path=取消环境变量的配置
set classpath=.;C:\ ;D:\ 回车 配置class文件的路径 set classpath= 取消classpath路径配置
表示当前所在目录,意思是先找当前目录,再找C盘,再找D盘
二、Java语言的组成:
1关键字 2标示符 3注释 4变量和常量 5运算符 6语句 7 函数 8数组
注意事项:
1、标示符: 由26个字母(大小写都可)、0——9及_、$ 组成,不能用关键字,不能以数字开头,尽量有意义 java严格区分大小写。
2、包名:多单词组成时所有字母都小写;例:xxxyyyzz
3、类名接口:多单词时所有的单词的首字母大写;例:XxxYyyZzz
4、变量名和函数名:第一个单词首字母小写,第二个单词开始的首字母大写;例:xxxYyy
5、常量名:所有的字母都大写,多单此时用下划线连接:例:XXX_YYY_ZZZ
3 常量:有6种常量类型,整数型,小数型,布尔型,字符型,字符串型,null型
4 变量:基本数据类型变量有8种,byte(1字节), short(2字节), int(4字节), long(8字节), float(4字节),
double(8字节), char(2字节),boolean(1字节) 低位与高位运算时会有类型自动提升,也可进行类型强转
逻辑运算符 & (全真才为真) 、| (全假才为假) 、! (取反)、^ (不一样为真,一样为假) 、&& (全真才为真,第一个为假则为假,后面的不用再判断了,短路) 、|| (全假才为假,第一个为真则为真,后面的不用判断了,短路)
5、位运算符 << 左移 、>> 右移 、>>> 无符号右移 左移相当于乘以2的n次幂,最低位补0,右移相当于除以2的n次幂,
最高位是0补0是1补1 ,而无符号右移,最高位全部补0
一个数异或同一个数两次仍得到原数。
三元运算符:(条件表达式)?表达式1:表达式2;条件为true则表达式1, 条件为false则表达式2
小结:只要是多目运算符,当数据类型不一致时,都会出现类型自动提升
6、对于整数有三种表现形式:八进制、十进制、十六进制。
7、 程序流程控制结构 有顺序结构 判断结构 选择结构 循环结构
三、顺序结构
判断结构 if语句 有三种格式:
1、if(条件表达式) 2、if(条件表达式) 3、if(条件表达式)
{执行语句;} { 执行语句;} {执行语句;}
else else if(条件表达式)
{执行语句;} {执行语句;}
……else{执行语句;}
选择结构 : switch(表达式){
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
default:
执行语句;
break;
}
总结:if和switch的区别:如果判断的具体数值不多,而是符合byte、short、int、char这四种类型虽然两种语句都可以用,建议使用switch语句因而效率较高;其他情况时对结果为boolean类型判断,使用if,if的范围更广。
循环结构 有3种形式 while 、do while 、for语句
1、while(条件表达式) {执行语句;}
2、do{执行语句;} while(条件表达式);(此处必须写上分号)
3、for(初始化表达式;循环条件表达式;循环后操作表达式){执行语句;}
小结:if else可简化为:三元运算符(变量名=(条件表达式)?表达式1:表达式2;)
但是他们之间的区别为:三元运算符可以看成if else的简化表达式,但三元牌运算符运算完必须有一个结果。
for循环流程:先赋值,在判断条件,满足时执行循环体,然后执行循环后操作表达式,再判断条件,满足再执行循环体,
如是往复,直到不满足条件时跳出循环
for与while的区别:
for的变量定义在for中,只在for中有效,for循环结束时,变量内存自动被释放;
while的变量定义在while之前循环结束后,变量仍然存在,可继续使用
for与while可以互换使用,定义循环增量用for更合适,节省内存
循环次数确定时用for,不确定时用while
无限循环的最简单表现形式:for( ;;) {} while(true) {}
Do while和 while的区别:
Do while不管条件是否满足,循环结构至少执行一次,而while只有条件满足时才执行。
四、函数
函数就是定义再累中的具有铁定功能的一段独立小程序;函数也称方法。
函数的格式:
修饰符 返回值类型 函数名(参数类型,形式参数1,参数类型,形式参数2)
{执行语句
Return返回值;
}
函数的特点:
1、定义函数可以讲功能的代码进行封装。
2、便于对该功能进行调用。
3、函数只有在调用时才会被执行。
4、函数的出现提高了代码的复用性。
注意:1、当函数没有返回值类型时,那么这是时返回值类型用一个特殊的关键字的来表示
这个字就是void,void代表的是函数没具体的返回值类型。
2、函数只能调用函数,不可以在函数内部定义函数
3、定义函数时,函数的结果应该返回给调用者交由调用者处理。
如何在java中表现一个数组呢?两种表现形式。
1)、元素类型[] 变量名 = new 元素类型[元素的个数];
2)、元素类型[] 变量名 = {元素1,元素2...};
元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};
五、基本应用代码:
打印99乘法表的打印代码:
/*
定义一个打印99乘法表功能的函数。
*/
public static void print99()
{
for(int x=1; x<=9; x++)
{
for(int y=1; y<=x; y++)
{
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();
}
}
选择排序代码:
class ArrayTest2
{
/*
选择排序。
内循环结束一次,最值出现头角标位置上。
*/
public static void selectSort(int[] arr)
{
for (int x=0; x<arr.length-1 ; x++)
{
for(int y=x+1; y<arr.length; y++)
{
if(arr[x]>arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y]= temp;
swap(arr,x,y);
}
}
}
}
/*
冒泡排序
*/
public static void bubbleSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。
{
if(arr[y]<arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
swap(arr,y,y+1);
}
}
}
}
/*
发现无论什么排序。都需要对满足条件的元素进行位置置换。
所以可以把这部分相同的代码提取出来,单独封装成一个函数。
*/
public static void swap(int[] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
public static void main(String[] args)
{
int[] arr = {5,1,6,4,2,8,9};
//排序前
printArray(arr);
//排序
//selectSort(arr);
//bubbleSort(arr);
//Arrays.sort(arr);//java中已经定义好的一种排序方式。开发中,对数组排序。要使用该句代码。
//排序后:
printArray(arr);
}
public static void printArray(int[] arr)
{
System.out.print("[");
for(int x=0; x<arr.length; x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}
折半查找:
public static int halfSearch_2(int[] arr,int key)
{
int min = 0,
max = arr.length-1,mid;
while(min<=max)
{
mid = (max+min)>>1;
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
else
return mid;
}
return -1;
}
折半查找。提高效率,但是必须要保证该数组是有序的数组。
折半的第二种方式:
public static int halfSearch(int[] arr,int key)
{
int min,max,mid;
min = 0;
max = arr.length-1;
mid = (max+min)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
if(min>max)
return -1;
mid = (max+min)/2;
}
return mid;
}
-------android培训、java培训、期待与您交流! ----------- [Java 基础]基础语法
- JAVA-Java基础语法
- Java基础:Java语法基础
- java基础:java语法基础
- JAVA基础.JAVA基础语法
- 【Java基础】Java基础语法
- java最基础语法
- java基础语法--标识符
- java基础语法--数据类型
- Java 基础语法篇
- Java基础语法
- Java的基础语法
- Java基础语法
- Java 语法基础
- java 基础语法
- java 基础语法总结
- 2. java 基础语法
- java语法基础
- CMS简介
- Visual C++ Windows Shell Programming源码中的错误和遗漏
- 黑马程序员_java高新-类加载器及代理
- 思科第二本教材 第三章 动态路由协议介绍 个人总结
- [working note][DB]AceDB数据库的多线程和单线程访问
- java语法基础
- Windows Shell Programming...
- web的主要开发方法,对网页的二次开发~cms
- 如何成为“一分钟经理人”?
- Javascript-为什么使用Object dectec而不是browser dectect
- Win 8应用开发马拉松——程序人生,共享精彩
- WCF (Windows Communication Foundation) Create & Implement a WCF Client
- php生成excel报表
- DataGeridView添加行号