Java 是一门面向对象的程序设计的编程语言, 在 1995 年, sun 公司发布了 Java 这门编程语言, 有咖啡的名称, 是当时灵机一动的想法. 在 2010 年的时候被 Oracle 公司收购了, 目前 jdk 的版本是 java10 了.
那么什么是 jdk 呢? 学习 java 必须要有 jdk, 那么我们现在去下载吧! 根据下方给的自己就可以找到了.
下载地址
下载 jdk, 和 eclipse 就比较简单了, 提供 JDK 9 地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
提供 JDK 8 地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
在 Java 这门语言是世界上很热门的一种, 在 java 中有它自己的一种重要工具, 为 jvm 为 java 的虚拟机. java 实现平台的无关性就是由它 jvm 的帮忙, 这个工具是实现在各种平台上运行的关键.
java 的编程过程是由最初的源文件(xxx.java), 源文件在到编译器里去执行, 然后产生出字节码文件(xxx.class), 字节码文件在到解释器中去执行, 就可以在显示器上展示效果了. 其中解释器是由 java 中的虚拟机去执行完成的, 将字节码文件解释到具体的平台上即可, 实现一次编译, 到处运行的结果.
在 java 中有 jre 的工具, 为 java 运行时环境, 包含 java 虚拟机, 和 java 核心类库, 支持的一些文件等.
如果要运行我们的 java 程序, 就要下载 jre, 在 java 中, 我们要重点了解, 学习, 并且掌握 jdk,jre,jvm; 如果你下载了 jdk, 那么你就有了 jre,jvm, 因为下载的 jdk 包含了 jre,jvm. 记得你们老师也叫你们下载了 jdk, 那么它就有了 jre,jvm, 这一点你们放心.
Java SE Java 标准版
Java EE Java 企业版
Java ME Java 微型版
讲述 JDK 的配置
JDK 包安装完成后, 需要配置环境变量. 点击桌面上的 "我的电脑" 或者 "此电脑", 选择 "属性", 接着选择 "高级", 点击其中的 "环境变量" 弹出 "环境变量" 对话框, 其中包含 "用户变量" 和 "系统变量" 两部分.
设置系统 "变量名" 为 "JAVA_HOME","变量值" 为 "C:\ProgramFiles\Java\jre1.8.0_112", 即是 JDK 安装路径, 你也可以将地址栏中的路径直接复制过来.
再次选择 "系统变量" 列表中找到其 "Path"(双击)-->"编辑", 弹出 "编辑系统变量", 点击新建;
然后, 单击 "系统变量" 下面的 "新建" 按钮, 创建名为 "classpath" 的环境变量, 值为 ".", 英文的一点, 代表当前路径.
环境变量:
- JAVA_HOME: D:\Java\jdk1.8.0_25
- CLASSPATH :.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- Path: ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
Java 语言概述
java 语言的概述
JDK
JDK(Java 开发工具包), 有 jdk 其中有 javac 为编译器, 是将源程序 (xxx.java) 编译成字节码的 (xxx.class), 然后通过 java 指令编译成(.class) 程序的结果.
Java 语言 描述
javaee 企业版
javase 标准版
javame 小型版
关键字
学习 Java 基础课程, 学会使用 eclipse,eclipse 为 Java 集成开发坏境 IDE, 创建第一个 Java 源文件代码:
- public class HelloWorld{
- public static void main(String[] args){
- System.out.println("hello world");
- }
- }
- // 注解
- HelloWorld
为类的名字
public static void main(String[] args)
为主方法
System.out.println("hello world")
为打印输出, 并在控制台显示 hello world
public
为访问修饰符, 表示公开的访问类
在运行的平台上:
虚拟机
Java 为面向对象的语法
什么是面向对象?
答: 在 Java 中一切皆对象; 可以理解为现实世界中的人, 物, 都可以看做为对象.
在一个 Java 的类中, 该类可以为对象, 那么类就是一个对象, 一个对象就如人, 它有方法和属性, 即为动作和状态的特征.
- // 建立一个人的类
- public class Person{
- String name; // 人具有姓名的属性
- String age; // 人具有年龄的属性
- public void eat(){
- System.out.println("人具有吃的方法");
- }
- }
重点:
java 的必备要点, 掌握, jdk,jre,jvm.jre 包含 jvm 和 javase 的标准类库; jdk 包含 jre 和开发工具集, java 有很多版, 如 java se,java ee,java me 哦~
下载 ecplise
下载 eclipse 链接(官网):
https://www.eclipse.org/downloads/
接下来我们进入到这个链接:
https://www.eclipse.org/downloads/eclipse-packages/
变量的定义
什么是变量, 即为可以变化的量, 示例
int age = 12;
其中 int 为变量的数据类型, 表示整数
age 为变量
"=" 为赋值操作符, 把右边的值赋值给左边的变量
- public class Person{
- int age = 12;
- public static void main(String[] args){
- System.out.println(age);
- }
- }
在 java 中我们要学的很多, 但是都很一般啦, java 本身就是语言, 跟学习语言差不多. 我们要掌握 java 中的一些: 标识符, 关键字, 变量, 常量, 数据类型等.
介绍八种基本变量的类型
数据类型分为基本数据类型和引用数据类型(类, class, 接口, interface, 数组)
基本数据类型分数值型, 字符型, 布尔类型
八种基本数据类型
整型 4 种: byte(8 位),short(16 位),int(32 位),long(64 位)
字符型 1 种: char(16 位)
浮点型 2 种: float(32 位),double(64 位)
布尔型 1 种: boolean(1 位)(true,false)
java 表示整数的为八进制, 十进制, 十六进制
特殊表达:
八进制: 以 0 开头
十六进制: 0x 或 0X 开头
转义字符
\uxxxx 四位 16 进制数所表示的字符
\' 单引号字符
\" 双引号字符
\\ 反斜杠字符
\r 回车
\n 换行
\t 横向跳格
\b 退格
标识符的命名:
标识符数字不能开头, 标识符中不能有空格
标识符由字母, 数字, 下划线, 美元符号组成
标识符严格区分大小写
标识符不能使关键字或者保留字
标识符是标识符, 关键字是关键字, 不能混为一谈
关键字
保留字: goto
关键字有很多:
- abstract,char,else,for,interface,private,super,boolean,class,extends,if,long,
- protected,switch,true,break,continue,false,implements,instanceof,public,synchronized,try,
- byte,default,final,import,new,return,this,void,case,do,finally,null,short,throw,
volatile,catch,double,float,int,package,static,throws,while 等.
变量的命名:
驼峰法命名, 单个单词全小写, 多个单词第一个单词小写, 后面单词首个字母大写.
需要见名知意.
满足不是其他的名称.
强制类型转换和自动类型转换
数据类型的转换
类型转换为自动类型转换和强制类型转换
数据类型的理解: 规则口诀
小到大自动, 大到小强制, 表示小杯子里的水可以倒入大杯子里, 而大杯子里的水倒入小杯子里, 会出现溢出.
- / 转换的数据类型比较 /
- byte->short(char)->int->long->float->double
Final 修饰符
final 修饰的, 为不可变得值,
final 可以修饰变量, 修饰类, 修饰方法.
被修饰的变量, 只能被赋值一次
被修饰的类, 不能被继承
被修饰的方法, 不可被重写
Static 关键字的理解
static 代码块, 只会在类加载的时候执行一次. static 变量不需要创建对象就可以引用.
静态成员变量可以通过对象访问, 只要访问权限足够就可以.
静态代码块, 随着类的加载而执行, 只执行一次.
运算符
算术运算符
赋值运算符
复合赋值运算符
自增自减运算符
- // 等统统要掌握
- // 运算符的优先级
- // 算术运算符 关系运算符 逻辑运算符
算数操作符
一般的 +,-,*,/, 还有两个自增 自减 , 以及一个取模 % 操作符.
这里的操作算法, 一定要掌握 好强制类型转换和自动类型转换.
if 条件结构
- if(条件){
- <语句块>
- }
- if-else
- if(条件为 true){
- <语句块>
- }
- else{
- <语句块>
- }
三目运算符
布尔表达式? 表达式 1: 表达式 2
多重 if
- if(score>=90) {
- System.out.println("优");
- }
- if (score>=80 & score<90){
- System.out.println("良");
- }
- if(score>=60 & score<80){
- System.out.println("中");
- }
- if (score <60){
- System.out.println("不及格");
- }
switch 语句格式:
- switch (mon) {
- case 1:
- case 2:
- case 3:
- System.out.println(mon + "月是春天");
- break;
- case 4:
- case 5:
- case 6:
- System.out.println(mon + "月是夏天");
- break;
- case 7:
- case 8:
- case 9:
- System.out.println(mon + "月是秋天");
- break;
- case 10:
- case 11:
- case 12:
- System.out.println(mon + "月是冬天");
- break;
- default:
- System.out.println("一年有 12 个月");
- }
while 和 do-while 循环语句
while 为 true 时, 继续执行; do-while 中条件为 true 时, 继续执行, 至少会执行一次.
for 语句格式:
for(int i=0;i<10;i++){
表达式语句;
}
continue 和 break
continue 为继续下一次循环
break 为结束整个循环
数组: 相同类型的数据集合为引用数据类型
数据类型[] 数组名;
数据类型 数组名[];
数组名 = new 数据类型[数组长度];
数据类型[] 数组名 = new 数据类型[数组长度];
- // 这种就是排序算法, 比如有 6 个人, 第一轮要进行 5 次比较
- // 第一轮
- for(int index=1;index<arr.length;index++)
- {
- if(arr[0]>arr[index])
- {
- int temp = arr[0];
- arr[0] = arr[index];
- arr[index] = temp;
- }
- }
- print(arr);
- // 第二轮
- for(int index=2;index<arr.length;index++)
- {
- if(arr[1]>arr[index])
- {
- int temp = arr[1];
- arr[1] = arr[index];
- arr[index] = temp;
- }
- }
- print(arr);
- // 第三轮
- for(int index=3;index<arr.length;index++)
- {
- if(arr[2]>arr[index])
- {
- int temp = arr[2];
- arr[2] = arr[index];
- arr[index] = temp;
- }
- }
- print(arr);
- // 第四轮
- for(int index=4;index<arr.length;index++)
- {
- if(arr[3]>arr[index])
- {
- int temp = arr[3];
- arr[3] = arr[index];
- arr[index] = temp;
- }
- }
- print(arr);
- // 第五轮
- for(int index=5;index<arr.length;index++)
- {
- if(arr[4]>arr[index])
- {
- int temp = arr[4];
- arr[3] = arr[index];
- arr[index] = temp;
- }
- }
- print(arr);
- // 第六轮没有, 我们 arr.length=6 举例
- //int index = 6;index<arr.length; false
- public static void selectionSort(int[] arr)
- {
- for(int count=1;count<arr.length;count++)
- {
- for(int index=count;index<arr.length;index++)
- {
- if(arr[count-1]>arr[index])
- {
- int temp = arr[count-1];
- arr[count-1] = arr[index];
- arr[index] = temp;
- }
- }
- }
方法
方法声明格式:
访问修饰符 返回类型 方法名(参数列表){
方法体
}
面向对象
万物皆对象, 现实中存在的事物都可以看成一个对象, 单一职责原则, 就是一个类只有一个引起功能变化的原因, 一个类中, 功能越多就容易耦合性高, 复用性就变低, 一旦耦合度高, 就可能会影响整个程序的运行.
面向对象的三大特征: 继承, 封装, 多态.
封装, 实现对信息的隐藏, 只能通过特定的方法进行访问, 隐藏对象的信息, 留出接口进行访问.
来源: http://www.jianshu.com/p/de18c7cf49d8