发表时间:2022-03-25来源:网络
- 是斯坦福校园意浓情深
- 是James的思想睿智
是剁手党双十一挥舞的利刃
是大数据云计算驰骋的平台
- 是ATM上吐出的钞票
- 是Android手机游走的灵魂
啊!java我的神
掌握面向对象编程的基本思想和技能
Java和前端不同,前端的学习内容 能看到效果,我们开始学习的是java的语法。
看不见摸不着,但是需要我们记住。所以我们学习java很重要的一个事情就是背语法。此时很多人会出现一个问题,不理解。何为不理解 :不知道为什么要这么做?Java语法的特殊性在于很长时间语法 到后面才会应用。我们学习的步骤 先记忆与法,然后在实际应用中去理解。
JDK最早是1.X版本,后来陆陆续续的升级 1.2 1.3 1.4 1.5 后来有一个划时代版本此时再以小版本命名就太low,从此就开始以大版本命名 JDK5 JDK6 JDK7 JDK8
####java的基本概念
#####一、java平台:
JavaSEJava Standard Edition 用于工作站,PC机的Java标准平台
JavaEEJava Enterprise Edition可扩展的企业级应用Java平台
JavaMEJava Micro Edition用于嵌入式Java平台;
二、java的特性开源具有面向对象、跨平台、简单性、解释执行、多线程、安全性等很多特点
三、 JDK JRE JVMJDK(Java Development Kit) 是 Java 语言的软件开发工具包。就是我们电脑如果要进行java语言的编写开发运行就需要安装JDK。
JRE是Java Runtime Environment缩写,指Java运行环境。JRE是JDK的一部分,意思就是说 安装完成JDK之后电脑上就有了JRE。JRE作用就是我们写java代码所需要的资源库支持,和运行所需要的虚拟机都在jre中。
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。(虚拟机就好像是 模拟器。我们现在电脑上面有很多软件能模拟 安卓操作系统。然后可以在电脑上面下载安卓手机软件玩手机游戏 ,虚拟机和模拟器差不多。我们的java代码需要在虚拟机中才能运行 )
JDK 中包含 JRE ,JRE中包含 JVM

所以说我们电脑上要开发java 就需要安装JDK。
###第二节、jdk的安装和配置
在 我们电脑的某个盘符下创建一个文件夹 叫java。这个文件夹专门用来安装JDK所需要的文件(不能有中文路径)
双击JDK

点击【下一步】

安装过程中会弹出安装JRE的选项,这是java运行环境,因为JDK中自带JRE,所以可以选择不装。

在这里插入图片描述
此时 JDK安装完成。我们的电脑上面安装了JDK,但是电脑需要配置环境变量才能识别。(配置环境变量:我们写的java代码需要到jdk中的jvm里运行,但是每个人安装的位置不一样,jvm到底在哪,电脑此时不知道,所以我们需要告诉自己的电脑 ,jdk安装到哪了。此时就是配置环境变量)
【我的电脑】-右键-【属性】-【高级系统设置】-【环境变量】

【系统变量】-【新建】-java_home:jdk安装根目录

【新建】-classpath:.;%java_home%\lib
【编辑】-path:添加 %java_home%\bin

测试:在命令窗口输入java和javac命令观察结果

平台: Windows OS MacOS Linux OS
跨平台: 不同的操作系统,内部的运行原理是不一样,换句话说,windows的软件不能在mac电脑上面进行安装。所以我们很多软件的制作成本就加大了。例如 爱奇艺,需要制作windows版 还需要制作mac版。此时就需要两个开发团队。假如你是老板,急需一种操作:能不能开发一个版本在不同的平台中都能运行,这就是跨平台。
Java是支持跨平台操作的一门语言。一次编写 多处运行。
Java跨平台实现的原理:
我们使用java语言开发一套程序。然后编译成字节码文件。在不同的平台中安装该平台对应的jvm,此时 就能运行我们的字节码了。
java virtual machine jvm:虚拟机,利用软件的形式模拟一台虚拟计算机的环境。java跨平台的特性。同样的一份代码可以运行在不同的操作系统上。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9vdy8hi3-1616211187442)(assets/image-20201016084302932.png)]
java源文件——【javac 命令编译】——.class文件——【java 命令运行】
在E盘根目录创建Hello.java文件,注意文件后缀是:.java ,而不是:.txt 。
public class HelloWorld { public static void main(String[] args){ System.out.println("你好java"); } }【cmd】——打开命令行窗口
输入:【E:】 + 【enter】进入E盘
输入:【javac HelloWorld.java】命令,注意这里要带文件后缀【.java】
如果没有反应,就说明编译完成,此时同目录下会多一个HelloWorld.class文件
然后输入:【java HelloWorld】
输出:浣犲ソjava
这是因为编码格式问题,可以在编译时加入指定的编码集:utf-8
输入【javac -encoding utf-8 Hello.java】
输入:【java Hello】
输出:你好java
示例2:使用EditPlus编写HelloWorld(可选)【新建】-【java】
class { public static void main(String[] args) { System.out.println("Hello World!"); } }写入类名:Hello
保存为Hello.java文件
配置javac命令行工具:
【tools】-【prefersences】打开工具配置并进行如下配置


很多人毕业了 注释都不会加。---- 很多程序员都加不对
Java的注释分成三种:
单行注释: // 注释部分
多行注释: /* 注释部分 */
文档注释: /** 注释部分 */
/** * 这是文档注释 */ public class Hello { public static void main(String[] args){ System.out.println("你好java"); /*String form=MessageFormat.format("你好:{0},我是{1},今年{2}岁了","花和尚","豹子头",23); System.out.println(form); 这是整段注释*/ //这是单行注释 } /*这是整段注释 public void test(){ System.out.println("这是测试方法"); } */ }在java中有包的概念。包的英文名称为 package。包其实就是一个文件夹。也就是说我们创建包就是创建文件夹,在java中我们需要创建的文件要分包管理。
其实就和我们前端一样的思想:css文件夹 里面存放的是css文件,img文件夹存放的是 资源文件。 java的包和这些文件夹有异曲同工之妙。我们java的分包是 创建不同的包 用来存放不同功能的java文件。
操作:1)选中src 【右键】—【new】 —【package】

2)输入包名,如果有子包,则使用“.”连接和间隔
包名的命名规范:
全小写 点分割 反域名 (严格遵循)
例如 : com.aaa.taobao.test com.alibaba.taobao.util
com : 代表不同的类型 如果是com 代表企业组织 org 代表公益组织 java开头 代表原生代码
aaa : 代表公司名称 如果没有公司 就用自己的名字 com.gfs.taobao.com
taobao: 代表项目名称 平时的时候我们都省略
test : 当前包的作用 例如 test 测试代码 util 工具类代码 dao 数据访问层代码
从今天开始我们写任何代码 都要遵循代码的命名规范。
很多人说 我现在在做练习,不用注意规范。还有人说我没有遵循命名规范 这不也没有什么错误吗?
----- 命名规范是约定俗成。
####3.2 创建类
【File】——【New】——【Project】

选择【java】,一般默认就是你安装的JDK版本【这里是1.8】,然后【Next】

直接点击【Next】

在项目目录【src】上右键——【New】——【java Class】——输入文件名称【Hello】,注意首字母要大写
public class Hello { }大括号中间添加代码:
public static void main(String[] args){ System.out.println("你好java"); }点击边上的箭头即可运行。
面试题: 请求一个.java中可以有多个类(外部类)吗?有什么要求?
答案:A 可以有多个类
package com.aaa; public class HelloWorld { public static void main(String[] args){ System.out.println("你好java"); } } class testAClass{ } class testBClass{ }但一个类文件中只能有一个用public修饰的类,并且该类的类名必须和类文件名相同。
如果public修饰的类名和文件名不同则会出现错误
Class 'HelloWorld1' is public, should be declared in a file named 'HelloWorld1.java'
这个公共类型 HelloWorld1 必须 被 声明 到 一个名为 HelloWorld1 的文件中。

鼠标放到错误提示的红线上会在左上角出现一个小红灯泡,点击灯泡旁边的下拉箭头,会出现几个建议改正的选项,可以点击使用其中一个来修改错误,一般使用最后一个“Rename class ‘HelloWorld1’ to ‘HelloWorld’”

###第四节:数据类型、变量
####一、java的数据类型
基本数据类型8种:整形:byte,short,int,long
浮点型:float ,double
字符型:char
布尔型:boolean
引用数据类型:
String “1234” 字符串类型的值必须使用双引号将内容包裹,
如果没有包裹,有两层含义:1)如果是文字字符则可能是变量;2)如果是数字字符则是数字值。
“1234” != 1234
注意: 在java中 单引号代表的是 字符类型 双引号代表的是字符串类型
但是在js中 单引号和双引号都是字符串类型
字符类型只能存储一个字符 字符串可以存储多个。
面试题: 请问 String 是基本数据类型吗?
警告:很多人毕业的时候 八种基本数据类型都忘了。
类型名称 关键字 占用内存 取值范围 字节型 byte 1 字节 -128~127 短整型 short 2 字节 -32768~32767 整型 int 4 字节 -2147483648~2147483647 长整型 long 8 字节 -9223372036854775808L~9223372036854775807L 单精度浮点型 float 4 字节 +/-3.4E+38F(6~7 个有效位) 双精度浮点型 double 8 字节 +/-1.8E+308 (15 个有效位) 字符型 char 2 字节 ISO 单一字符集 布尔型 boolean 1 字节 true 或 false1GB(一部电影) = 1024 MB 1MB(一张照片) = 1024KB
1KB(一个文档) = 1024B 1B就是一个字节 1B = 8b
一个字节在内存中就是8位二进制数
所以我们电脑的运行内存8G,当我们写的java程序中 有一句 int a = 10; 相当于在你的电脑运行内存的8G中 有四个字节的内存被这个a所占据
Java希望我们在编程的时候 能选择合适的数据类型,从而控制内存。例如 我们要存储一个人的年龄,人普遍年龄是 0-125.所以可以选择使用 byte类型,那么此时我们如果使用 int 类型 也可以,但是浪费内存。如果要存储一个乌龟的年龄,可以使用short类型。这就是为什么java能存储整数 需要四种类型。
以下划线,$或字母开头,不能有特殊字符,中间不能有空格,关键字不能用,大小写严格区分。
算数运算符
+ - * / += -= % ++ --
示例:给一个3位的数,求个位数、十位数、百位数相加的和
int a=963; int g=a%10; int s=a/10%10; int b=a/100; System.out.println(g+s+b);比较运算符(下一章再讲)
> , >= , < ,
强制类型转换其实就是欺骗编译器
我们强转之后 有可能会出现数据溢出的情况。
public static void main(String[] args){ short a=128; byte b=(byte)a; System.out.println(b);//结果是:-128 double c=56.9; int d=(int)c; System.out.println(d);//结果是:56 int e=20; int f=3; double g=a/b; System.out.println(g);//结果是:6.0 }为什么 a 和 b 相除的结果的类型是int类型呢?
原因是 java中变量的运算会自动提升:
两个变量运算 ,所得的结果类型 取决于参与运算变量的类型.
例如 a是int b 也是 int a和b进行运算结果 的类型要从a和b之中选一个。此时只有一种选择是 int 。
此时将a的类型改成 float b的类型还是 int ,结果的类型 就可以从 float 和 int之中选一个。此时结果类型选了float类型作为结果结果类型。(选取更精确的 所占字节大)
byte a=20; short b=3; int c=60; float d=56.5f; double e=a+b+c+d; System.out.println(e);//结果是:6.0编译器对数据类型和取值范围的判断
byte a=200;//错误,因为byte的取值范围是-128~127,常量整数默认为int类型 float d=56.5;//错误,因为默认情况下小数位double类型的,需要注明这个浮点数就是float类型 //--------下面两种就是正确的--------- byte a=127; float d=56.5f;为什么会报错呢?
因为 常量的整数,数据类型为 int ,常量的小数,数据类型为double。也就是说 200 这个数字 也有数据类型是 int。此时将int类型赋值给byte类型,是大给小,所以报错。同理 30.5的数据类型是double类型,double类型赋值给float也报错。所以我们的float在赋值的时候 需要加 F long类型赋值的时候需要加 L,F 和 L 可以理解成数据类型转换的特殊形式
下面的代码
此时 byte类型的a 赋值为127 此时不报错 为什么呢?
127是int类型 ,此时int类型的127 赋值给 byte类型的a 此时大给小不报错。原因是 编译器在预编译的时候,发现 127 是int 但是 在 byte的范围之内,所以将127给byte不会出现数据溢出的情况,此时编译器就隐式(偷偷地)将127的数据类型编程了 byte类型。
如果要进行基本的算术运算,则要求结果 的最低数据类型是整形(int)
short a=5; short b=6; short c=a+b;//a+b是int类型的,不能直接赋值给short类型,需要强制类型转换 short c=(short)(a+b); 不同种类型的要通过函数转换 String count="18"; int age=20; System.out.println(count+age);//输出结果是1820,而不是38,这是因为这里的+号运算是将两个字符串进行了拼接 int ct=Integer.parseInt(count); System.out.println(ct+age);//此时输出38; 基本类型包装类:为了便于操作,java针对基本数据类型都有包装类,定义了很多便于操作的方法。
Byte byte;
Short short;
Integer int;
Long long;
Float float;
Double double;
Boolean boolean;
算术运算的最小类型单位是int。
整数的除法结果是整形。
取值范围小的类型会自动转换为取值范围大的类型,反之则需要强制转换。
数值类型只要和字符串类型拼接(+),就可以转换为字符串类型。
字符串类型要转换成数值类型则必须使用数值类型的包装类的parse(字符串)方法。
%s:字符串占位符
%d:整数占位符
%f:浮点数占位符
System.out.printf("我是%s,今年岁%d了,体重%.1f","王重阳",18,78.5);Scanner扫描仪
创建对象:new Scanner(System.in);
public static void main(String[] args) { System.out.println("请输入你的姓名:"); Scanner sc=new Scanner(System.in); String name=sc.next(); System.out.println("请输入你的年龄:"); int age=sc.nextInt(); System.out.println("请输入你的体重:"); double weight=sc.nextDouble(); System.out.println("请输入你的爱好"); String hobby=sc.next(); System.out.printf("你的名字是:%s,今年%d岁了,体重是%.1f公斤,爱好是:%s",name,age,weight,hobby); }请输入你要吃的菜名
请输入菜的价格
请输入菜的数量
输出:您点的???菜,?盘,单价是??元,总金额是:??元
java通过什么实现跨平台
java是诞生于美国哪所大学
java的基本数据类型有哪些
接收键盘输入的类是什么
顺序结构
分支结构
循环结构
if(条件){
条件成立执行的代码
}else{
条件不成立执行的代码
}
public static void main(String[] args) { System.out.println("亲输入你的存款"); Scanner sc=new Scanner(System.in); double money=sc.nextDouble(); if(money>1000000) { System.out.println("你是土豪"); }else { System.out.println("你是屌丝"); } }多重if-else
请输入学生成绩,判断优良中差
System.out.println("亲输入你的成绩"); Scanner sc=new Scanner(System.in); double score=sc.nextDouble(); if(score>=90) { System.out.println("你是学霸"); }else if(score>=80) { System.out.println("你是学酥"); }else { System.out.println("你是学渣"); }使用switch判断学生成绩
System.out.println("亲输入你的成绩"); Scanner sc=new Scanner(System.in); double score=sc.nextDouble(); switch((int)score/10) { case 10: case 9: System.out.println("优秀");break; case 8: System.out.println("良好");break; case 7: System.out.println("一般");break; case 6: System.out.println("及格");break; default: System.out.println("不及格");break; } 判断月份的天数
public static void main(String[] args) { System.out.println("亲输入年份"); Scanner sc=new Scanner(System.in); double score=sc.nextDouble(); int year=sc.nextInt(); System.out.println("亲输入月份"); int month=sc.nextInt(); int mcount=31; switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: mcount=31;break; case 4: case 6: case 9: case 11:mcount=30; break; case 2: if(year%4==0&&year%100!=0||year%400==0) { mcount=29; }else { mcount=28; } } System.out.printf("本月有%d天",mcount); }语法:
初始化变量 while(循环条件){ 循环体 改变变量 } public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("是不是要输入新的成绩"); String tiaojian=sc.next(); while(tiaojian.equals("是")) { System.out.println("请输入郭大侠的比赛名次"); int lever=sc.nextInt(); switch(lever) { case 1:System.out.println("武林盟主"); break; case 2:System.out.println("武当掌门"); break; case 3:System.out.println("峨眉掌门");break; default: System.out.println("逐出师门"); } System.out.println("是不是要输入新的成绩"); tiaojian=sc.next(); } }使用循环改造输入判断每月有多少天的代码
public static void main(String[] args) { Scanner sc = new Scanner(System.in); String ans = "是"; while (ans.equals("是")) { System.out.println("亲输入年份"); double score = sc.nextDouble(); int year = sc.nextInt(); System.out.println("亲输入月份"); int month = sc.nextInt(); int mcount = 31; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: mcount = 31; break; case 4: case 6: case 9: case 11: mcount = 30; break; case 2: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { mcount = 29; } else { mcount = 28; } } System.out.printf("本月有%d天", mcount); System.out.println("还要继续输入年月么?:是/否"); ans = sc.next(); } }使用while循环改造输入成绩判断优良的代码
public static void main(String[] args) { Scanner sc = new Scanner(System.in); String ans = "是"; while (ans.equals("是")) { System.out.println("亲输入你的成绩"); double score=sc.nextDouble(); switch((int)score/10) { case 10: case 9: System.out.println("优秀");break; case 8: System.out.println("良好");break; case 7: System.out.println("一般");break; case 6: System.out.println("及格");break; default: System.out.println("不及格");break; } System.out.println("还要继续输入年月么?:是/否"); ans = sc.next(); } System.out.println("程序结束"); }练习:本金存入1000元,年利率5%,问多少年后本金能超过5000元。
public static void main(String[] args) { double money=1000; double rate=0.05; int i=0; while(money下一篇:java编程入门必学六大知识
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14