Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
给你学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm
小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
第1章 初识JAVA
*Java开发的三个方向:
1、Java SE:主要用于桌面程序的开发;
2、Java EE:主要用于网页程序的开发;
3、Java ME:主要用于嵌入式系统程序的开发。
*Java语言的主要特性:
1、面向对象;
2、分布性:可以在多个不同的主机上布置相关操作,同时数据也可以存放在多个不同的主机上,Java可以凭借URL对象访问网络对象,访问的方式和访问本地系统相同;
3、可移植性:Java程序与平台系统无关,通过JVM处理字节码文件以适应不同平台;
4、安全性:删除了类C语言中的指针、内存管理等语法,避免了非法的内存操作。同时Java程序要经过代码校验、指针校验等多种测试才可以运行;
5、多线程:Java允许应用程序同时并行执行多项任务,而且相应的同步机制可以保证不同线程能正确地共享数据;
6、高性能:Java编译后的字节码是在解释器中运行的,其运行速度比多数交互式的应用程序提高很多;
7、解释性、健壮性、动态等…。
*JDK安装后的环境变量配置:
1、JAVA_HOME:指向jdk的安装目录,Eclipse等软件就是通过搜索该变量值对应路径找到jdk;
2、PATH:在起始位置添加“%JAVA_HOME%in;”。其作用是指定命令搜索路径,在shell下面执行命令时,系统会到PATH变量所指定的路径中查找相应的命令程序(bin目录中包含经常要用到的可执行文件如javac/java/javadoc等)。设置好 PATH变量后,就可以在任何目录下执行javac/java等工具了;
3、CLASSPATH:作用是指定应用程序中使用的类的搜索路径JVM就是通过CLASSPTH来寻找类的。
*第一个Java程序
public class MyApp{
public static void main(String[] args){ System.out.println( System.out.println("My Java Application!"); }}//存储在D盘根目录下,D:MyApp.java//进入Shell中D盘符,输入javac MyApp.java//通过dir可以发现D盘根目录下多出了一个MyApp.class文件//这就是javac命令的作用:生成源程序的字节码文件//在D盘目录下,输入java MyApp//可在shell窗口看到输出:My Java Application!//这里java命令即是运行之前生成的字节码文件,即MyApp.class//但需要注意,这里不能用java MyApp.class
第2章 熟悉Eclipse开发工具
*Eclipse是IBM公司用Java语言开发的开源IDE集成开发工具。
*使用Eclipse编写Java程序:
1、首先通过“新建”创建一个Java项目,并输入项目名,假设为MyApp;
2、继续通过“新建”创建一个Java类,输入类名称时要注意类名必须和项目名一致,这里即是MyApp;
3、创建完成类之后Eclipse会自动打开代码编辑区,输入代码完成编程;
4、代码编写完成后可通过“运行”执行程序,或Ctrl+F11快捷键。
5、断点的设置:可以在需要设置断点的代码行对应的行号位置双击或者选择“切换断点”设置或删除;
6、以调试方式运行程序:右键点击程序代码选择“调试方式”/“Java应用程序”(或者通过菜单),调试器将执行到断点处挂起当前线程使程序暂停;
7、程序调试:程序被暂停后,可通过调试工具栏上的单步跳入(对应快捷键F5)使得执行跳入调用方法或者对象的内部单步执行程序;或通过单步跳过(对应快捷键F6)即运行单独的一行程序代码,跳到下一个可执行点。
小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
第3章 Java语言基础
一、标识符和关键字
1、Java中的标识符用于标识类名、变量名、方法名、数组名、文件名。
2、标识符的命名规则:由字母、数字、下划线和美元符号组成,但第一个字符不能是数字。同时标识符不能选用Java的关键字和保留字。
3、一般的约定命名规则:
(1)类和接口名:每个词首字母大写,如MyClass,HelloWorld;
(2)方法名:第一个词的首字母小写,其余词首字母大写,尽量少用下划线,如myMethod,myGetData;
(3)常量名:基本数据类型的常量名全部用大写字母,各词之间用下划线分隔,如SIZE_NAME;
(4)变量名:首词首字母小写,其余词首字母大写,不用下划线,尽量少用美元符号。
二、基本数据类型
1、整数类型:有byteshortintlong四种,存储空间分别为1、2、4、8个字节,其中给long类型变量赋值时必须在结尾加L或l,如:long BigNumber=1234567L。
2、浮点类型:有float单精度和double双精度两种,分别占4、8个字节。其中float类型变量赋值时结尾必须加F或f。
3、字符类型:使用char进行声明,占用两个字节。
4、布尔类型:使用boolean进行声明,只能由true和false两个值。
三、变量和常量
1、变量的有效范围(作用域)
(1)在类体中定义的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量分为静态变量和实例变量,静态变量通过修饰符static确定,并且可以通过“类名.静态变量名称”的方式在其他类中使用。
class var{
int x=3; //这里定义了var类的一个实例变量x
static int y=30; //这里定义了var类的一个静态变量y
}
class bar{
int a=var.y;
/*
定义bar类的实例变量a,
并把var类中静态变量y的值赋值给a
*/
}
(2)在类的方法体中定义的变量为局部变量,只在当前代码块中有效,其生命周期只在该方法被调用时,虚拟机为其分配内存空间,方法调用结束后,则该内存也被释放。
(3)在类中某一方法体内,可直接使用类体创建的静态变量,当该静态变量与该方法体中创建的局部变量重名时,静态变量将被隐藏,如果须调用该类体静态变量时,需使用“类名.静态变量名称”的方式。
注:经测试,类体中的实例变量无法在方法中使用。
public class Number { static int mydata=414; static int yourdata=1973; public static void main(String[] args) { int mydata=1314; System.out.println("类体静态变量mydata的值是"+Number.mydata); System.out.println("类体静态变量yourdata的值是"+yourdata); System.out.println("方法内部的局部变量mydata的值是"+mydata); }}/*输出----------类体静态变量mydata的值是414类体静态变量yourdata的值是1973方法内部的局部变量mydata的值是1314----------------*/
四、运算符
异或的应用范例:不使用辅助变量实现两变量的值互换
import java.util.Scanner; public class Nexchange { public static void main(String[] args){ Scanner scan=new Scanner(System.in); System.out.println("请输入变量A的值"); long A=scan.nextLong(); System.out.println("请输入变量B的值"); long B=scan.nextLong(); System.out.println("A="+A+" B="+B); System.out.println("执行变量互换..."); A=A^B; B=B^A; A=A^B; System.out.println("A="+A+" B="+B); } } /* 这里运用了位操作异或,对于整数X有:X^X=0;X^0=X;同时异或操作满足结合律和交换律 将A=A^B带入后面两式,分别如下: B=B^A=B^A^B=A^(B^B)=A^0=A; A=A^B=(A^B)^A=...=B; ---------- 引申:除异或方法外,不通过辅助变量的方法还有: (1)a=a+b;b=a-b;a=a-b; (2)a=a*b;b=a/b;a=a/b; */
五、实例
1、判断某一年是否为闰年
import java.util.Scanner;
public class LeapYear{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.println("请输入年份(0~99999):");
long year=scan.nextLong();
while (year<0||year>99999){
System.out.println("请重新输入年份(0~99999):");
year=scan.nextLong();
}
scan.close();
if((year/400==0)||((year/4==0)&&(year/100!=0))){
System.out.println("输入年份为"+year+"是闰年");
}
else {
System.out.println("输入年份为"+year+"不是闰年");
}
}
}
小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
2、不使用乘号运算符,用移位运算符计算21*16。
public class MoveBit {
public static void main(String[] args){
long a=21L;
int x=1;
for(int i=1;i<5;i++){
x*=2;
a=a<<1;
System.out.println("21左移动"+i+"位就是乘以"+x+"结果为"+a);
}
}
}