java从入门到精通01
Posted cgblpx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java从入门到精通01相关的知识,希望对你有一定的参考价值。
文章目录
Day01–Java开发环境+HelloWorld
计算机基础知识
计算机
计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理数据的现代化智能电子设备。由硬件和软件所组成,没有安装任何软件的计算机称为裸机。常见的形式有台式计算机、笔记本计算机。按照规模分为微型机、小型机、大型机、巨型机(超级计算机)等。
计算机的应用已渗透到社会的各个领域,正在改变着人们的工作、学习和生活的方式,推动着社会的发展。哪些方面?
计算机硬件
计算机硬件(Computer Hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。
计算机通常由CPU、主板、内存、电源、主机箱、硬盘、显卡、键盘、鼠标,显示器等多个部件组成。
计算机软件
计算机软件(Computer Software)是使用计算机过程中必不可少的东西,计算机软件可以使计算机按照事先预定好的顺序完成特定的功能,计算机软件按照其功能划分为系统软件与应用软件
系统软件: DOS(Disk Operating System), Windows, Linux, Unix, Mac, android, ios
应用软件:office QQ 英雄联盟 王者荣耀
软件开发
软件
按照特定顺序组织的计算机数据和指令的集合
开发
软件的制作过程
软件开发
借助开发工具与计算机语言制作软件
计算机语言
语言
人类进行沟通交流的各种表达符号,方便人与人之间进行沟通与信息交换
计算机语言
人与计算机之间进行信息交流沟通的一种特殊语言
计算机语言中也有字符,符号等等
常见的计算机语言如C,C++,C#,JAVA
人机交互方式
软件的出现实现了人与计算机之间更好的交互。
交互方式
图形化界面:这种方式简单直观,使用者易于接受,容易上手操作。
命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令。
键盘功能键及快捷键介绍
Tab
Shift Ctrl Alt
空格 Enter
Window
上下左右
PrtSc(PrintScreen)屏幕截图
Ctrl+A 全选
Ctrl+C 复制
Ctrl+V 粘贴
Ctrl+X 剪切
Ctrl+Z 撤销
Ctrl+S 保存…
常用的DOS命令
打开DOS控制台的方式
常用DOS命令
cmd 进入DOS窗口 #快捷方式,浏览目录,直接输入CMD跳转
默认是在c盘下,可以切换盘符。
e: 进入e盘
dir 列出当前目录下的目录和文件
mkdir 新建文件夹
rmdir 删除文件夹
cd java 进入java目录
cd … 退到上层目录
cd / 退到根目录
exit : 退出dos命令行
cls : (clear screen)清屏
Java语言概述
Java语言发展史
詹姆斯•高斯林(James Gosling)1977年获得了加拿大卡尔加里大 学计算机科学学士学位,1983年 获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。
后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。
Java Development Kit
1.0 - 1.1 - 1.2 - 1.3 - 1.4 - 1.5
5.0 - 6.0 - 7.0 - 8.0……
Sun公司于1995年推出
1991年sun公司James Gosling等人开始开发Oak语言
1994年,将Oak语言更名为Java
1996年获得第一笔投资1亿元
1998年提出jdk1.2,更名为java2
之后推出jdk1.3 jdk1.4
2005年更名为jdk5.0,进行了大幅的版本改进
2006年sun公司宣布将Java作为免费软件对外发布
2007年3月起,全世界所有的开发人员均可对Java源代码进行修改
2007年推出jdk6.0
2009年4月Oracle以74亿美元收购了sun公司
2011年7月由Oracle正式发布jdk7
2014年3月正式发布了java8
Java语言平台版本
J2SE(Java 2 Platform Standard Edition)标准版
是为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。
J2ME(Java 2 Platform Micro Edition)小型版
是为开发移动设备和嵌入式设备(电器、机器人、机顶盒…)提供的解决方案。
J2EE(Java 2 Platform Enterprise Edition)企业版
是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发。
Java语言特点
简单性 高性能
编译性 解释性
面向对象 分布式处理
健壮性 安全性
开源 跨平台
什么是跨平台性?
通过Java语言编写的应用程序在不同的系统平台上都可以运行。
原理是什么?
只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。
JDK
概述
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心。
它包含了:
1、 JAVA开发工具(jdk\\bin)
2、 基础开发库(jdk\\jre\\lib\\rt.jar)
3、 基础开发库的源码(jdk\\src.zip)
下载与安装
通过官方网站获取JDK
http://www.oracle.com
针对不同操作系统,下载不同的JDK版本
识别计算机的操作系统
下载完后进行安装,傻瓜式安装,下一步下一步即可。
注意:
1、 同时安装多个jdk时需要使用指定环境变量来确认使用的是哪个jdk
2、 安装路径不要有中文或者特殊符号如空格等。最好目录统一
3、 我们也提供了绿色解压版,不需要安装直接解压即可
配置环境变量
** JAVA_HOME **
该配置是要配置jdk的安装目录,来明确要使用哪个版本的jdk。
例如:我把jdk安装在了D:\\Java\\jdk7。配置如下:
** PATH **
系统会在path配置的值中,寻找可执行文件。
需要把jdk\\bin添加到path中。
目录介绍
Eclipse
概述
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
下载与安装
1、 官网下载并安装
2、 下载完整的打包文件(java ee企业版),直接解压就可以用
工作空间workspace
用来保存所有的开发文件和代码等,也可以切换工作空间
HelloWorld案例
创建day01工程
创建包
包名全小写。
选中src-右键-new-package
创建HelloWorld类
类名要符合驼峰命名法。
选中包 - 右键- new-class
创建方法
class HelloWorld
public static void main(String [] args)
System.out.println(“Hello World”);
测试
直接右键run就可以
运行与工作原理
1、 编译:通过javac命令将java的源文件也就是.java文件编译成.class文件。
2、 执行:
先启动java虚拟机,不同的操作系统有不同的jvm,因此java跨平台。
再通过JVM加载HelloWorld.class字节码文件。并加载main方法执行程序。
1.6 拓展:
1.6.1 在自己电脑上安装jdk
同时安装两个版本,jdk1.7和jdk1.8
指定使用jdk1.8版本
1.6.2 下载最新版本eclipse
自己下载并使用
1.6.3 JDK JRE JVM的关系
1、 JDK–Java Development Kit是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
2、 JRE–Java Runtime Environment是运行JAVA的运行时环境,包含JVM和Java核心类库。
3、 JVM–Java Virtual Machine,Java虚拟机的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。
1.6.4 Java的”一次编写,处处运行”是如何实现的?
Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台独立的。
2 Day02–数据类型+运算符
2.1 前言
2.1.1 标识符
可以简单的理解为一个名字。在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等。我们选择的名称就称为标识符,并且遵循以下规则:
A. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符。
B. 不能以数字开头。
C. 标识符是严格区分大小写的。
D. 标识符的命名最好能反映出其作用,做到见名知意。
2.1.2 关键字
在java语言中已经被赋予特定意义的一些单词。一共有53个关键字。其中有两个保留字:const和goto。关键字不能被用作标识符!!
2.1.3 注释
Java代码的解释说明。不影响程序的运行,用于辅助读程。
//单行注释
/* 多行注释 /
/* 文档注释 */
2.1.4 变量
在JAVA中,有的数据值是不固定的,总在变,我们还需要记录这些值,我们可以把这些值理解为变量。
我们通过三个元素来描述变量:变量类型,变量名以及变量值。
int age=18; //声明int类型的变量并赋值
String tel; //声明String类型的变量
** 注意:**
1、 变量名必须是一个有效的标识符。
2、 变量名不可以使用java关键字
3、 变量名不能重复
2.1.5 常量
在程序运行过程中一致不会改变的量成为常量。
略。。。
2.2 数据类型
2.2.1 基本类型(八种)
2.2.1.1 介绍
位Bit 字节Byte 1Bit=8byte
类型名称 字节空间 取值范围
整数型
byte 1 -27到27-1 或者 -128到127
short 2 -215到215-1
int 4 -231到231-1
long 8 -263到263-1
浮点型 float 4 单精度,对小数部分的精度要求不高
double 8 双精度,精确的小数部分并操作值很大时
字符 char 2 0到65535
布尔 boolean 1 真true 假false
2.2.1.2 练习1:最大值最小值
package day0102;
public class Test1
public static void main(String[] args)
//=====1、整型测试开始
byte a=-128;
byte b=127;
short c=Short.MIN_VALUE;
short d=Short.MAX_VALUE;
int e=Integer.MIN_VALUE;
int f=Integer.MAX_VALUE;
long g=Long.MIN_VALUE;
long h=Long.MAX_VALUE;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
//=====整型测试结束
//=====浮点测试开始
float i=Float.MIN_VALUE;
float j=Float.MAX_VALUE;
double k=Double.MIN_VALUE;
double l=Double.MAX_VALUE;
System.out.println(i);
System.out.println(j);
System.out.println(k);
System.out.println(l);
//=====浮点测试结束
//=====字符测试开始
char a='a';
char b=97;
char c='b';
char d=98;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
//=====字符测试结束
2.2.1.3 练习2:输入个人信息
王海涛今年20岁,月薪20000,奉劝大家拼命学java,才能早日走向人生巅峰。
package day0201_规则;
import java.util.Scanner;
public class Test1_个人信息
public static void main(String[] args)
System.out.println("姓名:");
String name= new Scanner(System.in).nextLine();
System.out.println("性別:");
String gender= new Scanner(System.in).nextLine();
System.out.println("年龄:");
int age= new Scanner(System.in).nextInt();
System.out.println("您输入的个人信息是:");
System.out.println("姓名:"+name);
System.out.println("性別:"+gender);
System.out.println("年龄:"+age);
2.2.1.4 练习3:圆形面积
圆的面积:πrr
圆的周长:2πr
package day0104;
import java.util.Scanner;
public class Test1
public static void main(String[] args)
System.out.println("请输入圆的半径");
double r=new Scanner(System.in).nextDouble();
System.out.println(3.14*r*r);
2.2.1.5 练习4:变量交换
接收用户输入的值:假设a=1,b=2将a和b的值做交换。
package day0103;
import java.util.Scanner;
public class Test1
public static void main(String[] args)
System.out.print("输入整数a:");
int a=new Scanner(System.in).nextInt();
System.out.print("输入整数b:");
int b=new Scanner(System.in).nextInt();
int t=a;
a=b;
b=t;
System.out.println(a);
System.out.println(b);
2.2.2 引用类型
引用类型是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。如:类,接口,数组,后面讲。。。
2.3 基本类型的字面值(5条)
2.3.1 整数字面值是int类型
int a = 999999999;//错,右侧是int类型,但是超出范围
2.3.2 byte,short,char三种比int小的整数可以用范围内的值直接赋值
byte b=127;//对
byte b=128;//错,右面已经超过byte范围是int类型的数据
2.3.3 浮点数的字面值是double类型
double a=3.14;//对
float a=3.14;//错,右面是double,float是四字节double是八字节存不下
2.3.4 字面值后缀l f d
L –long 如:long a = 99999999999;//错,超出范围,解决方案加L
F –float 如:float a = 3.14;//错,右面是double类型,解决方案加F
D –double 如:double a=3;//错,右面是int,解决方案加D或者改成3.0
2.3.5 进制前缀
0x - 16进制
0 -8进制
\\u -char类型,16进制
2.4 基本类型的类型转换
2.4.1 小到大(隐式转换)
byte a =120;
int b=a;//直接转
2.4.2 大到小(显式转换)
需要强制类型转换
int xx = 356;
byte y=(byte) xx;
注意:小数转成整数,小数直接舍弃
2.5 运算规则(5条)
2.5.1 计算结果的数据类型,与最大类型一致
3/2 得1 ,而不是1.5,结果是int类型
3d/2 得1.5,相当于double/int,结果是double类型
2.5.2 byte,short,char三种比int小的整数,运算时会先自动转换成int
byte a=3;
byte b=4;
byte c=a+b;//错,运行时,byte会先自动转成int再运算,int+int还是int
2.5.3 整数运算溢出
整数运算,类似于一个中标,转到最大时,再转会回到最小。
计算:光速运行一年的长度是多少米
System.out.println(300000000*60*60*24*365);
System.out.println(300000000L*60*60*24*365);
2.5.4 浮点数运算不精确
java提供了解决方案,后面就会讲到。
System.out.println(1-0.8);
System.out.println(4.35*100);
2.5.5 浮点数的特殊值
Infinity 无穷大 3.14/0
Nan not a number 0/0.0
2.6 拓展
2.6.1 什么是显示类型转换和隐式类型转换
2.6.2 char 型变量中能不能存储一个中文汉字,为什么?
char 类型可以存储一个中文汉字,因为 Java 中使用的编码是 Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法),一个 char 类型占 2 个字节(16 比特),所以放一个中文是没问题的。
3 Day03–流程控制+循环
3.1 运算符
3.1.1 概述
3.1.2 练习1:平年闰年
输入年号,判断是否是闰年。两个条件:
1、能被4整除,并且不能被100整除
2、或者能被400整除
package day0203_平年闰年;
import java.util.Scanner;
public class Test1
public static void main(String[] args)
System.out.println("年号:");
int y = new Scanner(System.in).nextInt();
String r="平年";
if(y%4==0)
if(y%100!=0)
r="闰年";
if(y%400==0)
r="闰年";
或者
if((y%4==0&&y%100!=0)||y%400==0)
r="闰年";
System.out.println(y+"年是"+r);
3.1.3 练习2:自增自减
int a = 1;
System.out.println(a++);//先取值再自增
int b=1;
System.out.println(++b);//先自增再取值
int c=1;
int d = c++;
int e = ++c;
System.out.println(d);
System.out.println(e);
3.1.4 练习3:求三个数的最大值
package day0203_平年闰年;
import java.util.Scanner;
public class Test1_三个数的最大值
public static void main(Stringjava从入门到精通API01