------- android培训、java培训、期待与您交流! ----------
Java作为一门强大的计算机语言,是一门人与计算机交流的语言。
人机交流的语言有很多种比如:Java,C#,C,C++等。
这里我们说强大的Java语言
JAVA(Stanford University Network)语言是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。Java不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发。Java确实具备了“一次编写,处处运行”的特点,Java已成为网络时代最重要的编程语言之一。
Java语言的特性:跨平台性(用java编写的程序在不同的系统平台上都可以运行)。
Java语言的三种技术结构:
|--J2SE(标准版)
支持所有JAVA标准规范中所定义的核心类函数库和所有的JAVA基本类别。J2SE定位在客户端程序的应用上。
|--J2EE
在J2SE的基础上增加了企业内部扩展类函数库的支持,比如支持Servlet/JSP的javax.servletr.*和EJB的javax.ejb.*的类函数库。J2EE定位在服务器端程序的应用上。
|--J2ME
只支持JAVA标准规范中所定义的核心类函数库的子集。定位于嵌入式系统的应用上。
Java 跨平台性的原理在于它先装了一个java虚拟机JVM(java virtual Machine)然后由JVM来负责java程序在当前系统的运行。
学习Java之前需要搭建Java语言的环境。
JDK,JRE:简单的说就是Java的运行环境(JRE)和Java的开发环境(JDK)。
JDK(Java Development Kit):Java开发工具包,它是提供给Java开发人员使用的,里面包含了Java的开发工具、JRE,所以当你装了JDK也就相当于有了JRE了。
JRE(Java Runtime Environment):Java运行环境,里面提供了Java运行时所需要用到的工具。
JDK的下载安装:
www.oracle.com或者Java.sun.com下载后根据中文提示安装。并找到C:\Program Files\Java\jdk1.6.0_38\bin目录。该目录为你安装Java是所选的路径。在W7下通过鼠标右键我的电脑—属性—高级—环境变量—Path后面或者前面加上该目录并通过; 隔离开。
class的值为(按照你安装的目录)C:\Program Files\Java\jdk1.5.0_06\bin;classpath的值为 C:\Program Files\Java\jdk1.5.0_06\lib;.(最后有个点)如果classpath和path已经有一长串东西了,你把上面的值分别都放在最前面就OK了
不明白可以点击该链接点击打开链接。里面具体介绍了class和classPath的区别和配置情况。
Java的编译运行过程:
.Java文件通过javac命令的编译生成了一个.class的字节码文件在通过java命令的运行成为一个可执行的.exe文件并展示出来。
Java命名规范:
包名:全部小写xxyyzz。
类名,接口名:首字母大写XxxYyyZxx。
变量名,函数名:第一个单词小写,第二个单词开始首字母大写xxxYyyZzz。
常量名:所有字母大写用下划线连接XXX_YYY_ZZZ。
Java关键字:被java语言赋予了特殊含义的单词。不能把这些单词作为名字来使用。
Java的基本数据类型:
基本数据类型的转换:(按精度从高到底的顺序) byte →short →int→long→float→double
当低精度与高精度做运算时,会自动向高精度的转换,不能高精度转换为低精度,这样会出现数据精度丢失的异常。
这时我从黑马程序员的毕向东老师视频里面截下来的图例
进制的转换相信大家都很清楚这里简单提下负数的二进制:
借用毕老师的一张图就可以简单明了的制定负数的二进制是怎样来的;
运算符(常用):
+ - * / 就不说了就是数学里面的简单运算符。
%运算符:可以理解为求余数。5%2可以理解为5/2=2..1;那么1就是这个运算符所运算出来的值当6%2的时候余数为0那么5%2=1,6%2=0;但是当左边的数小于右边的时候结果为左边的数。如:2%5=2;2%6=2;
++,--运算符;它可以理解为一个一元运算符,作为自增1,或者自减1的运算在后期的运算中大量运用。
int a=3,b;// b=++a;// System.out.println(a+","+b);//输出4,4 b=a++; System.out.println(a+","+b);//输出4,3
导致这样的结果是什么呢?我们可以这样理解。
b=++a; b = (1+a);教大家一个简单的记忆方法程序都是从上往下从左往右。当遇到++的时候就先+1;在运算。
b=a++; b = (a+1);这个就是++在后面,先进行赋值给b的运算后在进行自增1;
用引用毕老师的例子就是a要去b家,去b家之前看到一个西瓜就抱去b家,在自己回家。在去了b家之后,回家路上看到了西瓜就把西瓜抱回自己家。
+=,-=,*=,/=运算符。
int a=3,b=1; a+=b; System.out.println(a);//输出4
这个是什么意思呢?其实就是在给a复制罢了。它的运算结果等效于 a = a + b;记住是结果并不是运算过程。结果。
当为a-=b的时候就是 a = a - b; *=,/=都是一样的效果。可以理解为一种简写方式。
>>,<<位运算符:
位运算符个人认为是二进制的极致体现。右移位运算,当6>>2;相当于就是6/2*2;整数运算为整数,6>>2=1;6>>1就是6/2*1=3;
右移为除那么左移肯定就为乘,3<<2 等效于3*2*2=12 ,3<<1=6 等效于3*2*1=6;
^运算符:
7^4^4=7。该运算符一半就是用来换两个变量的值比如
m=3,n=4;
n=n^m;
m=n^m-->(n^m)^m
n=n^m;-->n^(n^m)
此时m就为2 ,n就为3
~反码:
这个运算符十分特殊,我这里有一张图能简单说明
关系运算符:
<=小于等于,>=大于等于, ==等于, !=不等于;
=与==的区别;
=,是复制的运算。a=4;就是将4的赋值给a;
==,相当于判断的运算符。a==4,是判断a的是是否为4。并未进行赋值。是比较两端的值的大小。
逻辑运算符:
短路的意思就是说:
3>2 && 5<6 3="">2肯定为true 这时候&&就体现出来了高效!当为true了右边就不在运算了。就这一点不同。
三元运算符:
?:为了方便我就用中文字符代替应为的字符了,因为英文的始终太难看出来了。
这个运算符是什么意思呢?
首先我把运算加进去
int a = 3,b=2;int max=0;System.out.println(max=a>b?a:b);//打印3
意思就是当a>b为true的时候就赋值a给max否则就赋值b给max;
也可以写成
if(条件表达式)
{
<span style="white-space:pre"></span>执行语句;
}
if(a>b)
{
<span style="white-space:pre"></span>max=a;
}
else
{
<span style="white-space:pre"></span>max=b;
}
<pre name="code" class="html">
他们的区别在于if else运算可以没有结果,他只是一个条件语句。
而?:是一个运算符,运算就必须有一个结果。仅此而已。
介绍一个与if一样也是判断条件的语句-->swith语句:
swith 表达式:
case 取值1:/*注意,这里是冒号:并不是分号;*/
执行语句;
break;
case 取值2:
执行语句;
break;
case 取值3:
执行语句;
break;
default
执行语句;
break;(可以不写)
这个语句的特点就是选择题一样的机制:
最常见的就是成绩
switch(grade) {if和swith又有什么区别呢?
case 'A':
println("85-100\n");
break; /*每一个case语句后都要跟一个break用来退出switch语句*/
case 'B': /*每一个case后的常量表达式必须是不同的值以保证分支的唯一性*/
println("70-84\n");
break;
case 'C':
println("60-69\n");
break;
case 'D':
println("<60\n");
break;
default:
println("error!\n");
}
if是一个能判断区间的语句而条件也为boolea型的,swith刚才说到了是选择题机制。
swith语句选择的类型只有四种:byte,short,int ,char。
case与default之间没有位置关系。
结束swith也只有两种情况,1、遇到break;2、swith自然结束。
函数:
函数就是定义在类中的具有特定功能的一段独立小程序。 函数也成为方法。 函数的格式:修饰符 返回值类型 函数名(参数类型 形式参数,参数类型 形式参数2...)函数的特点: 1、定义函数可以将功能进行代码封装。 2、便于对功能进行复用 3、函数只有被调用才会被执行 4、函数的出现提高了代码的复用性 5、对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以不写。
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:返回给调用者。
注意: 函数中只能调用函数,不可以在函数内部定义函数。
定义函数时,函数的结果应该返回给调用者,交由调用者处理。
如何定义一个函数呢? 1、既然函数是一个独立的功能,那么该功能的运算结果是什么先明确。
2、在明确在定义该功能的过程中是否需要位置的内容参与运算 函数的重载 重载的概念:在同一个类中允许存在一个以上的同名函数,只有他们的参数个数或者参数类型不同即可。
重载的特点:与返回类型无关,只看参数列表。
重载的好处:方便于阅读,优化了程序设计。
什么时候用重载? 当定义的功能相同,但是参与运算的位置内容不同,那么这时候就定义一个函数名称以表示功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
例如:
/*
函数的重载
定义一个加法运算,获取两个整数的和
*/
//定义一个加法运算,获取两个整数的和
public static int add(int x,int y)
{
return x+y;
}
//定义一个加法运算,获取三个整数的和
public static int add(int x,int y,int z)
{
return x+y+z;
}
//99乘法表的重载
public static void print99()
{
for (int x=1;x<=9 ;x++ )
{
for (int y=1;y<=x ;y++ )
{
System.out.print(x+"*"+y+"="+x*y+"\t");
}
System.out.println();
}
}
public static void print99(int num)
{
for (int x=1;x<=num ;x++ )
{
for (int y=1;y<=x ;y++ )
{
System.out.print(x+"*"+y+"="+x*y+"\t");
}
System.out.println();
}
}
下面是我在看视频的时候截图下来的毕老师的练习题
循环结构:
代表语句while,do while ,for
一、while:
while(条件表达式)
{
执行语句;
}
二、do while:
do
<span style="white-space:pre"></span>{
执行语句;
}while (条件语句);
三、for
for (初始化表达式1,初始化表达式2;循环条件表达式 ;循环后的操作表达式1,初始化表达式2 )while与do whlie的区别 whlie:先判断条件,只有条件满足才执行循环体。
{
执行语句;
}
do whlie:先执行循环体在判断条件,条件满足在继续执行循环体。 简单的说就是do while 无论条件满足,循环体至少执行一次。
for与whlie的区别和联系 for:在for内部定义的变量在循环结束后变量就不能用了。 whlie:while用到的变量在循环结束后可以使用。 for和whlie可以进行互换。
练习:打印小山
for(int x=0;x<5;x++)结果为:
{
for(int y=x;y<5;y++)
{
System.out.print(" ");
}
for(int z=0;z<=x;z++)
{
System.out.print("* ");
}
System.out.println();
}
总结: 什么时候使用循环结构? 当要对某些语句执行很多次的时候,就用循环结构。 循环语句的其他特点: 无限循环的最简单形式: 1、for(;;){} 2、whlie(true){}例子:
//求1-10的和(累加)
int sum=0;
for(int x=1;x<=10;x++)
{
sum+=x;//其中运算符+=的应用
}
System.out.println(sum);
System.out.println("-------------------------------------------");
//1-100之间7的倍数,并打印。
int count=0;
for (int x=1;x<=100 ;x++ )
{
if (x%7 == 00)//%运算符的应用
{
System.out.print("x="+x+" ");
count++;//++运算符的应用
}
}
System.out.println("7的倍数的个数是:"+count);
System.out.println("-------------------------------------------");
<span style="white-space:pre"></span>for(int x=1;x<=9;x++)//乘法表<span style="white-space:pre"></span>{<span style="white-space:pre"></span>for(int y=1;y<=x;y++)<span style="white-space:pre"></span>{<span style="white-space:pre"></span>System.out.print(x+"*"+y+"="+x*y+"\t");<span style="white-space:pre"></span>}<span style="white-space:pre"></span>System.out.println();<span style="white-space:pre"></span>}//循环嵌套for (int x=1;x<=5 ;x++ ){for (int y=1;y<=x ;y++ ){System.out.print(y);}System.out.println();}
break与continue: break:应用范围:选择结构和循环结构。 continue:应用于循环结构。
break的应用:跳出当前循环语句直接终止。
//break的应用
for (int x=0;x<=3 ;x++ )
{
if(x==1)
break;//用与当x=1的时候需要语句结束的情况
System.out.println("x="+x);
}
X:for (int x=0;x<=4 ;x++ )//该for循环的名字为X
{
Y:for (int y=0;y<=6 ;y++ )//该for循环的名字为Y
{
System,.out.println("y="+y);
break X;//可以在内循环控制外循环的结束。
}
}
continue的应用:跳出本次循环继续执行当前执行训话语句。
//continue的应用
for (int x=;x<=10 ;x++ )
{
if(1%2==1)
continue;//当1%2==1的时候继续循环只有!=1的时候才打印出x.
System.out.println("x="+x);
}
X:for (int x=0;x<=4 ;x++ )//该for循环的名字为X
{
Y:for (int y=0;y<=6 ;y++ )//该for循环的名字为Y
{
System,.out.println("y="+y);
continue x;//执行到此处时跳回X循环语句继续循环
}
}
总结: 1、break和continue单独存在时,下面有任何语句都执行不到。 2、break用于循环与swith语句,而continue只用于循环语句
------- android培训、java培训、期待与您交流! ----------
详细请查看:www.itheima.com