解密Java编程开发
Java,别跑,哈哈,初次见面,请多关照。
初次接触Java,感觉有种莫名的奇妙感,觉得特别高大上,“我的天,我要在编程领域的有所作为…”林林总总
后来,通过学习,Java并不是想象的那样高深莫测,反而只是编程领域的敲门砖,所谓“活到老,学到老”,又所谓“上了贼船,入了贼窝”,我顿时发现这是个起点,起点往往预示了成功的一半。
那么,到底什么是Java?
Java,是于1995年5月被推出的Java程序设计语言和Java平台的总称。 Java起源于Oak,在印度一个盛产咖啡的岛—爪哇岛被命名,是由James Gosling等几位工程师于1995年5月推出的一种可以编写跨平台应用软件、完全面向对象的程序设计语言。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java 是一项用于开发应用程序的技术,可以让 Web 变得更有意思和更实用。 Java 与 javascript 并不相同,后者是一种用于创建 Web 页的简单技术,只能在浏览器中运行。
使用 Java 可以玩游戏、上载照片、联机聊天以及参与虚拟体验,并能够使用联机培训、网上银行和互动地图等服务。如果没有安装 Java,则许多应用程序和网站都无法工作。
默认情况下,Java 将自动通知您有新的更新可供安装。 为确保软件最新和计算机安全,请您务必接受并安装更新。 如果您在 Windows 计算机上收到了更新 Java 的通知但您记得从未下载或安装它,则有可能是 Java 已经随您的新计算机预先加载。
于是,我对这个庞大的编程王国产生了浓烈的兴趣,
好了,Java的初识,就告一段落,接下来,重头戏开始了。
Are You Ready?
================================================
=================================================
Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。
Java还包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。
客户端
银行软件、商场结算软件
浏览器
京东商城、淘宝网、易趣网
移动端
Android APP
高速运算和存储
大数据开发
Java是Sun Microsystems于1995年推出的高级编程语言,
Sun目前被Oracle(甲骨文公司)收购了
我们使用的jdk版本:1.6-1.8
1.JAVA SE
2.JAVA ME
3.JAVA EE
步骤:
1.找到jdk的安装包
2.默认安装到C盘
3.配置jdk的环境变量
4.测试jdk是否安装成功(到搜索栏,输入命令符cmd,回车,输入java -version,回车)
步骤:
1.通过javac命令将java文件(专业术语叫源文件)编译成class文件(专业术语叫字节码文件)
2.通过java命令执行class文件,运行成功!
跨平台
public static void main(String[] args){
}
1.创建工程project(建议工程名小写,首字母建议用字母不用数字)
步骤:File选项卡->New ->Java Project
2.创建包package(建议包名首字母小写)
步骤:File选项卡->New->Package
3.创建类class(首字母必须大写!)
步骤:File选项卡->New->class
4.运行java文件。
步骤:右击鼠标->Run As -> Java Application
(保存快捷键:CTRL+S)
(1)创建类:
public class A{
}
(2)入口函数:
public static void main(String[] args){
}
(3)输出语句:
System.out.println("");
=================================================
public class A{} ——>中A代表的含义就是创建了一个类,类名是A。
2.
package test; ——>中test代表的含义就是创建了一个包,包名是test。
3.入口函数:
public static void main(String[] args){
}
4.输出语句:
System.out.println(“陈胡。。。。”);
5.方法
B() ——>创建一个方法,B是方法名称
System.out.print(“徐晓琴\n”);
System.out.print(“徐晓琴”);
等价于
System.out.println(“徐晓琴”);
System.out.print(“徐晓琴”);
System.out.print(“老\t师”);
1.一个数据存储空间的表示(CPU内存开辟的一个空间)
2.变量的存储地址唯一,不重复
3.变量三要素:
/**
*变量命名规则:
*/
public class Demo004 {
public static void main(String[] args){
int a = 100;
int _ = 100;
int $ = 100;
int ¥ = 100;//(中文格式下的shift+4键)
int d4 = 100;
int myCat = 100;
}
}
1.数值类型
分为:整型,浮点型
2.非数值类型
(java常见的基本数据类型:
byte short int long
float double char boolean)
2.2 java中的引用类型:String
String a = “1”;(值只要有双引号就是字符串类型)
2.3 String和char类型的区别?
String全称:字符串(包含单个,乃至多个),语法:一定是双引号
char 全称: 字符(单个) 语法:一定是单引号
3.附注:取值范围从小到大:======================================》重点!!!
byte->short->int ->long ->float ->double
char->int ->long ->float ->double
案例1:定义变量步骤:
//1.声明一个变量
int money;
//2.给变量赋值
money = 100;
//3.获取变量的名称
System.out.println(money);
案例2:二次赋值过程:
//1.初始化money变量,并赋值为100
int money = 100;
//2.输出money的值
System.out.println(“前:”+money);
//3.第二次对money赋值,赋值的内容是30
money = 30;
//4.输出money此时此刻的值。结果为30
System.out.println(“后:”+money);
使用变量完成如下操作
输出Java课考试最高分:98.5
输出最高分学员姓名:张三
输出最高分学员性别:男
答案:
public class Demo006 {
public static void main(String[] args){
//1.定义一个double类型的变量,变量名为highScore,变量值是98.5
double highScore = 98.5;
//2.输出变量名为highScore的值。
System.out.println("Java课考试最高分:"+highScore);
//3.定义一个String类型(字符串类型,附注:专门存放非数值类型的数据类型)
String name = "张三";
//4.输出变量名为name的值
System.out.println("输出最高分学员姓名:"+name);
//5.定义一个char类型的变量,值为男
char sex = '男';
//6.输出变量名为sex的值
System.out.println("输出最高分学员性别:"+sex);
}
}
创建一个工程名为kh88_01,创建三个包,包名分别为test1,test2,test3。在test2包中创建类,类名为Demo007.
在类中实现以下效果。
使用变量完成如下操作
输出Java课考试最高分:38.5
输出最高分学员姓名:李四
输出最高分学员性别:女。
(java黑科技:
1.格式化java代码:
选中代码,右击鼠标,选中Source,再选中Format
)
实战练习
1.项目驱动:使用变量完成如下操作
输出Java课考试最高分:98.5
输出最高分学员姓名:张三
输出最高分学员性别:男
=================================================
总结练习
商场为员工提供了基本工资,物价津贴及房租津贴。其中,物价津贴为基本工资的40%,
房租津贴为基本工资的25%,要求:从控制台输入基本工资,并计算出实领工资,输出结果如图所示。
答案如下:
package test1;
import java.util.Scanner;
public class Demo0001 {
public static void main(String[]args){
System.out.println("请输入基本工资");
Scanner scanner = new Scanner(System.in);
int name = scanner.nextInt();
System.out.println("该员工的工资明细为:"+name);
double b = name*0.4;
double c = name*0.25;
double d = name+b+c;
System.out.println("基本工资:"+name);
System.out.println("物价津贴:"+b);
System.out.println("房租津贴:"+c);
System.out.println("员工薪水:"+d);
}
}
小明左右手分别拿两张纸牌:黑桃10和红心 8,现在交换手中的牌。编写一个程序模拟这一过程;两个整数分别保存在两个变量中,将两个变量的值互换,并输出互换后的结果,输出结果如图所示
答案如下:
package test1;
public class Demo0002 {
public static void main(String[]args){
int num1 = 10;
int num2 = 8;
System.out.println("输出互换前手中的纸牌:");
int temp;
temp = 10;
num1 = num2;
num2 = temp;
System.out.println("左手中的纸牌:"+num1);
System.out.println("右手中的纸牌:"+num2);
int num3= 8;
int num4= 10;
System.out.println("输出互换后手中的纸牌:");
int temp1;
temp1 = 8;
num3 = num4;
num4 = temp1;
System.out.println("左手中的纸牌:"+num3);
System.out.println("右手中的纸牌:"+num4);
}
}
银行提供了整存整取定期储蓄业务,其存期分为一年,两年,三年,五年,到期凭存单支取本息。年利率如表所示。
存期 | 年利率 |
---|---|
一年 | 2.25% |
二年 | 2.70% |
三年 | 3.24% |
五年 | 3.60% |
编写一个程序,输入存入的本金数目,计算假设存一年,两年,三年,五年,到期存款时,银行应支付的本息分别是多少,输出结果如图所示,
答案如下:
package test1;
import java.util.Scanner;
public class Demo0003 {
public static void main(String[]args){
System.out.println("请输入本金:");
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
System.out.println("本金为:"+a);
double num1;
double num2;
double num3;
double num4;
num1 = a*(1+0.0225);
num2 = a*0.027*2+a;
num3 = a*0.0324*3+a;
num4 = a*0.036*5+a;
System.out.println("存取一年后的本息是:"+num1);
System.out.println("存取二年后的本息是:"+num2);
System.out.println("存取三年后的本息是:"+num3);
System.out.println("存取五年后的本息是:"+num4);
}
}
=================================================
=================================================
特点:
(1)常量名通常大写
(2)不同字符建议使用下划线分割
(3)不能被二次赋值(换句话说就是如果进行二次赋值就会报错)
案例:
public static void main(String[] args){
final String CHENHU_SEX = "男";
System.out.println(CHENHU_SEX);
CHENHU_SEX = "女";
System.out.println(CHENHU_SEX);
}
(步骤:
1.导入import java.util.Scanner;
2.Scanner scanner = new Scanner(System.in);
3.调用String name = scanner.next();
)
案例:
package test;
//第一步:导入Scanner类
import java.util.Scanner;//导入老外写的Scanner类,包路径是Scanner
/**
* 案例2:Scanner的使用
*
*/
public class Demo02 {
public static void main(String[] args){
//提示语句
System.out.println(“请输入您要输入的值是:”);
//第二步: 创建Scanner对象
Scanner scanner = new Scanner(System.in);
//第三步:获取键盘输入的值(调用scanner对象的next()方法,将返回值赋给name变量,name变量类型是String类型)
String name = scanner.next();
//测试
System.out.println("您刚刚输入的值是:"+name);
}
}
A.附注:
//基本数据类型取值范围大小:
//byte->short->int ->long ->float ->double
//char->int ->long ->float ->double
B.案例:
//类型转换的方式:
//(1).由小转大,直接转
// int a = 3;//将3赋值给变量a
// double b ;
// b = a;
// System.out.println(b);
//(2)由大转小,需要强制转换,语法:加入小括号
int a;
double b = 5.0;
a = (int)b;
System.out.println(a);
C.案例2:
/**
* 类型转换案例:
*某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分?
*/
```java
public class Demo07 {
public static void main(String[] args) {
double avgScore = 81.29;
int rise = 2;
double secondScore = avgScore+rise;
System.out.println(secondScore);
}
}
D.案例3:
/**类型转换案例3:
* 去年Apple笔记本所占市场份额是20,今年增长市场份额是9.8,求今年所占份额?
*
*/
```java
public class Demo08 {
public static void main(String[] args) {
int lastYear = 20;
double rise = 9.8;
double nowYear = lastYear + rise;
System.out.println("今年所占份额:"+nowYear);
}
}
E.赋值运算符
(1)语法:变量名 = 表达式;
/**
```java
public class Demo09 {
public static void main(String[] args) {
int wanghaoScore = 80;
int zhangmengScore = wanghaoScore;
System.out.println("张萌的成绩是:"+zhangmengScore);
}
}
案例2:
/**
* 如何借助变量以及赋值运算符实现两个数据的交换?
*
*/
public class Demo10 {
public static void main(String[] args){
int num1 = 8;
int num2 = 9;
int temp;
temp = 8;
num1 = num2;
num2 = temp;
System.out.println("num1的值:"+num1);
System.out.println("num2的值:"+num2);
}
}
F.算术运算符
案例:
public class Demo11 {
public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 3;
int d = 4;
System.out.println(a+b);//算术加
System.out.println(a-b);//算术减
System.out.println(a*b);//算术乘
System.out.println(a/b);//算术除
System.out.println(c%b);//算出取余
//扩展
int e = ++a;//自增操作 ++a 等价于 a+1
System.out.println(e);
int f = (a+=3);// a+=3 等价于 a=a+3;
System.out.println(f);
int g = (a/=3); // a/=3 等价于 a=a/3;
System.out.println(g);
}
}
===================================================
案例1:
需求说明
求四位会员卡号之和?
(思路:
键盘输入四位数字的会员卡号
使用“/”和“%”运算符分解获得会员卡各个位上的数字
将各个位上数字求和)
答案:
public class Demo02 {
public static void main(String[] args) {
//1.输出"请输入4位会员卡号:"语句
System.out.println("请输入4位会员卡号:");
//2.创建Scanner对象
Scanner scanner = new Scanner(System.in);
//3.调用nextInt()获取键盘输入的值
int number = scanner.nextInt();
//4.输出"会员卡号是:"语句
System.out.println("会员卡号是:"+number);
//5.获取千位数
int qian = number/1000;
//6.获取百位数
int bai = number/100%10;
//7.获取十位数
int shi = number/10%10;
//8.获取个位数
int ge = number%10;
//9.分别输出千位数,百位数,十位数,个位数
System.out.println("千位数:"+qian+" 百位数:"+bai+" 十位数:"+shi+" 个位数:"+ge);
//10.输出各个位之和
System.out.println("会员卡号"+number+"各位之和:"+(qian+bai+shi+ge));
}
}
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
&& 短路与 两个操作数都是true,结果才是true
A||B 短路或 两个操作数一个是true,结果就是true
! 非 操作数为true,结果为false
操作数为false,结果为true
理论案例:
public class Demo03 {
public static void main(String[] args) {
boolean a = true;
boolean b = true;
boolean c = false;
boolean d = false;
//System.out.println(a && b);
//System.out.println(a && c);
//System.out.println(c && d);
//System.out.println(a || b);
//System.out.println(a || c);
//System.out.println(c || d);
System.out.println(!a);
}
}
案例:
// int x=8;
// int y=9;
// System.out.println((++x==y)||(++x!=y));
// System.out.println(x);
int x=8;
int y=9;
System.out.println( (++x!=y)||(++x==y));
System.out.println(x);
语法:条件?表达式1:表达式2
案例1:
public class Demo05 {
public static void main(String[] args) {
int a = 3;
System.out.println( a>5?“a是大于5的”:“a不大于5” );
}
}
5.选择结构
A.if(重要!)
B.switch
1.if语句
/**
*if
*案例1:
*张浩Java成绩大于90分,老师奖励他iPhone6s ,该怎么做呢?
*
*语法结构:
*if(条件){结果}
*
*/
public static void main(String[] args) {
System.out.println("请输入张浩的java成绩:");
//1.创建Scanner对象
Scanner scanner = new Scanner(System.in);
//2.获取键盘输入
int zhanghaoScore = scanner.nextInt();
//3.判断如果张浩的java成绩大于90,则老师奖励他iPhone6s
if(zhanghaoScore>90){
System.out.println("老师奖励他iPhone6s");
}
}
2.复杂条件的if选择结构
/**
*案例:使用复杂条件的if选择结构
*张浩Java成绩大于90分,并且音乐成绩大于80分时,
*或者Java成绩等于100分,音乐成绩大于70分时,
*老师奖励他,该怎么做呢?
*/
public class Demo07 {
public static void main(String[] args) {
System.out.println("请输入张浩的java成绩:");
Scanner input = new Scanner(System.in);
int javaScore = input.nextInt();
System.out.println("请输入张浩的音乐成绩:");
int musicScore = input.nextInt();
boolean flag1 = (javaScore > 90) && (musicScore > 80);
boolean flag2 = (javaScore == 100) && (musicScore > 70);
if (flag1 || flag2) {
System.out.println("太棒了!奖励一个MP3");
}
}
}
3.使用if-else选择结构
案例:
/**
*/
public class Demo08 {
public static void main(String[] args) {
System.out.println("请输入张浩的java成绩:");
Scanner input = new Scanner(System.in);
int number = input.nextInt();
if(number>90){
System.out.println("奖励iPhone6s ");
}else{
System.out.println("蹲马步");
}
}
}
4.嵌套if选择结构
案例:学校举行运动会,
百米赛跑跑入10秒内的学生有资格进决赛,
根据性别分别进入男子组和女子组
答案:
public static void main(String[] args) {
System.out.println("请输入学生成绩:");
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
if(score<10){
System.out.println("请输入学生性别:");
String sex = scanner.next();
//比较字符串内容是否相同调用equals()方法
if(sex.equals("男")){
System.out.println("进入男子组决赛");
}else{
System.out.println("进入女子组决赛");
}
}else{
System.out.println("淘汰。。。。");
}
}
1.使用if实现张浩Java成绩大于90分,老师奖励他iPhone6s ,该怎么做呢?
2.使用if-else实现如果张浩Java考试成绩大于90分,老师就奖励他一个iPhone6s
否则老师就罚他蹲马步。
3.使用嵌套if选择结构实现学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,
根据性别分别进入男子组和女子组。
package test;
import java.util.Scanner;
public class Demo021 {
public static void main(String[]args){
System.out.println("请输入成绩:");
Scanner scanner = new Scanner(System.in);
int zhanghaoscore = scanner.nextInt();
if(zhanghaoscore>90){
System.out.println("老师奖励iPhone6s!");
}
}
}
package test;
import java.util.Scanner;
public class Demo023 {
public static void main(String[]args){
System.out.println("请输入成绩:");
Scanner scanner = new Scanner(System.in);
int zhanghaoscore = scanner.nextInt();
if(zhanghaoscore>90){
System.out.println("老师奖励iPhone6s!");
}else{
System.out.println("蹲马步");
}
}
package test;
import java.util.Scanner;
public class Demo021 {
public static void main(String[]args){
System.out.println("请输入成绩:");
Scanner scanner = new Scanner(System.in);
int zhanghaoscore = scanner.nextInt();
if(zhanghaoscore>90){
System.out.println("老师奖励iPhone6s!");
}
}
}
====================
package test;
import java.util.Scanner;
public class Demo024 {
public static void main(String[]args){
System.out.println("请输入学生成绩:");
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
if(score<10){
System.out.println("请输入学生性别");
String sex =scanner.next();
if (sex.equals("男")){
System.out.println("进入男子组");
}else{
System.out.println("进入女子组");
}
}else{
System.out.println("淘汰。。。。");
}
}
}
=================================================
A.语法结构:
switch (表达式) {
case 常量 1:
语句;
break;
case 常量 2:
语句;
break;
…
default:
语句;
}
附注:表达式类型可以是:int、short、byte、char、枚举类型、String
B.
案例实现:
/**
*/
public class Demo02 {
public static void main(String[] args) {
System.out.println("请输入韩嫣的名次:");
Scanner input = new Scanner(System.in);
//1.键盘输入
int score = input.nextInt();
//2.使用switch语句
switch(score){
case 1: //case语法:后跟常量
System.out.println("参加麻省理工大学组织的1个月夏令营");
break;//break语法:中断当前的代码执行,不往下执行。
case 2:
System.out.println("奖励惠普笔记本电脑一部");
break;
case 3:
System.out.println("奖励移动硬盘一个");
break;
default: //default语法:除了之前的分支不走以外,自动走default分支
System.out.println("不给任何奖励");
}
}
}
6.循环结构
while结构:
A.语法:
1.循环操作
2.循环条件
3.防止死循环(i++)
B.代码实现:
int i = 1;
while(循环条件){
循环操作;
防止死循环语句;
}
案例1:
实现打印50份试卷
伪代码:
1.循环操作是:打印试卷
2.循环条件是:1到50
3.防止死循环语句
实现代码:
public static void main(String[] args) {
int i = 1;
while(i<=50){
System.out.println("打印"+i+"份试卷");
i++;
}
}
案例2:
/**
public class Demo05 {
public static void main(String[] args) {
System.out.println("请输入张浩的学习任务是否合格:(y/n)");
Scanner input = new Scanner(System.in);
String answer = input.next();
while(answer.equals("n")){
System.out.println("上午阅读教材,学习理论部分,下午上机编程,掌握代码部分");
System.out.println("请输入张浩的学习任务是否合格:(y/n)");
answer = input.next();
}
System.out.println("合格直接退出。。。");
}
}
for循环:
语法结构:
for(参数初始化;条件判断;更新循环变量){
循环操作
}
案例1:
/**
* 使用for循环输出100次“好好学习!”
*
*/
```java
public class Demo08 {
public static void main(String[] args) {
for(int i=1;i<=100;i++){
System.out.println("第"+i+"遍好好学习");
}
}
}
``
案例2:
/**
*案例:使用for循环:
*循环输入某同学S1结业考试的5门课成绩,并计算平均分
*
*/
public class Demo09 {
public static void main(String[] args) {
//1.定义一个变量,保存每位同学的成绩
int score = 0;
//2.定义一个变量,保存平均分
int avg = 0;
//3.定义一个变量,保存总分
int sum = 0;
System.out.println("输入学生姓名:");
Scanner input = new Scanner(System.in);
//4.获取键盘输入的学生名称
String name = input.next();
//5.循环遍历5门课程
for(int i=0;i<5;i++){
System.out.println("请输入5门课程中第"+(i+1)+"门课程的成绩:");
//6.循环输入学生每门课程的成绩
score = input.nextInt();
//7.循环将每位同学的成绩求和,将和赋值给sum变量
sum += score;
}
//8.求平均值
avg = sum /5;
//9.输出结果
System.out.println(name+"的平均分是:"+avg);
}
}
1.学习使用jd-gui.exe反编译工具
2.断点调试步骤:
(1)找到要调试的代码,鼠标双击左侧阴暗栏
(2)右击当前myeclipse页面中的Debug As,找到Java Application
(3)F6快捷键(单步执行)
(4)F8快捷键(退出当前断点)
)
还是那句老话,书山有路勤为径,学海无涯苦作舟,Java的王国还需我来继续探索,尽管路途艰辛,我无所畏惧,因为知识老人永远只会眷恋那个最勤奋的人。
话不多说,希望我的博客,能够帮助你们踏入Java王国的大门。最后,别忘了给笔者辛辛苦苦写的著作,点一波关注哦~