JAVA基础

JAVA基础

2020年11月27日

21:01

1 预科

a. 什么是计算机

  • 能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。

  • 由硬件常见的形式有台式计算机、笔记本计算机、大型计算机等。和软件所组成

  • 广泛应用在︰科学计算,数据处理,自动控制,计算机辅助设计,人工智能,网络等领域

b. 硬件及冯诺依曼结构(CPU 内存,主板)

c . 计算机软件

​ 1. 系统软件:DOS(Disk Operating System)Windows,Linux,Unix,Android,IOS

​ 2. 应用软件:WPS,QQ,微信,联盟,绝地求生

d. 基本DOS命令

常用的Dos命令

  1. 开始+系统+命令提示符
  2. Win键+R输入cmd 打开控制台(推荐使用)
  3. 在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口
  4. 资源管理器的地址栏前面加上cmd路径管理员方式运行:选择以管理员方式运行

常用的Dos命令

 盘符切换

 查看当前目录下的所有文件 dir

#切换目录 cd change directory

cd..

#清理屏幕c1s(clear screen)

#退出终端exit

#查看电脑的ip ipconfig

#打开应用

calc

mspaint

notepad

#ping 命令

ping [www.baidu.com](http://www.baidu.com)


#文件操作

md 目录名

rd目录名

cd>文件名

del文件名

e. 计算机语言发展史

​ 第一代语言

​ ◆机器语言

​ ◆我们都知道计算机的基本计算方式都是基于二进制的方式。

​ ◆二进制:010111001010110010110100

​ ◆这种代码是直接输入给计算机使用的,不经过任何的转换!

​ 第二代语言

​ ◆汇编语言

​ ◆解决人类无法读懂机器语言的问题

​ ◆指令代替二进制

​ ◆目前应用:

​ ◆逆向工程

​ ◆机器人

​ ◆病毒

​ ◆…

​ 第三代语言

​ ◆摩尔定律

​ ◆当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18个月翻两倍以上

​ ◆高级语言

​ ◆大体上分为:面向过程和面向对象两大类。

​ ◆C语言是典型的面向过程的语言。C++、JAVA是典型的面向对象的语言。

​ ◆聊聊各种语言:

​ ◆C语言

​ ◆C++语言

​ ◆JAVA语言

​ ◆C#语言

​ ◆Python、PHP、JavaScript

​ ◆…

2 Java入门

01:Java帝国的诞生

02:Java特性和优势

​ ◆简单性

​ ◆面向对象

​ ◆可移植性

​ ◆高性能

​ ◆分布式

​ ◆动态性

​ ◆多线程

​ ◆安全性

​ ◆健壮性

03:Java三大版本

​ ◆Write Once、Run Anywhere

​ ◆JavaSE:标准版(桌面程序,控制台开发.……)

​ ◆JavaME:嵌入式开发(手机,小家电.……)

​ ◆JavaEE:E企业级开发(web端,服务器开发.…)

04:JDK, JRE、JVM

​ ◆JDK:Java Development Kit

​ ◆JRE:Java Runtime Environment

​ ◆JVM:JAVA Virtual Machine

05:Java开发环境搭建

​ ◆JDK下载与安装

​ ◆配置环境变量

​ ◆JDK目录介绍

​ ◆HelloWorld 及简单语法规则

​ ◆Notepad++安装和使用

卸载JDK

​ 1.删除Java的安装目录

​ 2.删除AVA_HOME

​ 3.删除path下关于Java的目录

​ 4.java -version

安装JDK

​ 1.百度搜索JDK8,找到下载地址

​ 2.同意协议

​ 3.下载电脑对应的版本

​ 4.双击安装JDK

​ 5.记住安装的路径

​ 6.配置环境变量

​ 1.我的电脑->右键->属性

​ 2.环境变量->JAVAHOM日

​ 3.配置path变量

​ 7.测试JDK是否安装成功

​ 1.打开cmd

​ 2.java -version

06:HelloWorld详解

​ HelloWorld

​ 1.随便新建一个文件夹,存放代码

​ 2.新建一个java文件

​ 文件后缀名为.java

​ Hello.java

​ 【注意点】系统可能没有显示文件后缀名,我们需要手动打开

​ 3.编写代码

public class Hello{
   

	public static void main(string[]args){
   

		system.out.print("Hello,world!";

}

​ 4.编译 javac java文件,会生成一个class文件

​ 5.运行class文件,java class文件

07: Java程序运行机制

◆编译型

◆解释型
◆程序运行机制

08: 使用IDEA开发

3. Java基础

01:注释

​ ◆Javoa中的注释有三种:

​ ◆单行注释
​ ◆多行注释
​ ◆文档注释

02: 标识符

​ ◆关键字

​ ◆单行注释

标识符注意点

  • 所有的标识符都应该以字母(A-z或者a-z),美元符($)、或者下划线()开始

  • 首字符之后可以是字母(A-z或者a-z),美元符($)、下划线()或数字的任何字符组合

  • 不能使用关键字作为变量名或方法名。

  • 标识符是大小写敏感

  • 合法标识符举例:age、$salary、_value、_1_value

  • 非法标识符举例:123abc、-salary、#abc

    public static void main(String[]args){
         
        string 王者荣耀 = "最强王者";
        System.out.println(王者荣耀);
         }
    
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

03: 数据类型

  • 强类型语言
    ◆要求变量的使用要严格符合规定,所有变量都必须先定义才能使用

  • 弱类型语言
    ◆Java的数据类型分为两大类
    ◆基本类型(primitive type)

    ◆引用类型(reference type)

    什么是字节
    ◆位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。
    ◆字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示,
    ◆1B(byte,字节)=8bit(位)
    ◆字符:是指计算机中使用的字母、数字、字和符号

    1bit表示1位,
    1Byte表示一个字节1B=8b。
    1024B=1KB1024KB=1M1024M=1G.

04: 数据类型扩展及面试题讲解

​ 浮点数据类型不能完全用来比较。

05: 类型转换

◆由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

------------------------------------>byteshortchar->int->long->float->double

◆运算中,不同类型的数据先转化为同一类型,然后进行运算。
◆强制类型转换

◆运算中,不同类型的数据先转化为同一类型,然后进行运算。
◆强制类型转换

◆自动类型转换

注意点:
1.不能对布尔值进行转换

2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题!

06: 变量、常量、作用域

变量
◆变量是什么:就是可以变化的量!
◆Java是一种强类型语言,每个变量都必须声明其类型。
◆Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

type varName[=value][{
   ,varName[=value]}];
//数据类型变量名=值;可以使用逗号隔开来声明多个同类型变量。

◆注意事项:
· 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
· 变量名必须是合法的标识符。
· 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

变量作用域
◆类变量 static 定义在类中,方法块外直接引用
◆实例变量 定义在类中,方法块外,引用时用new进行实例化,若不初始化,默认值为0.(除了基本类型,其余默认值都是null)

//变量类型  变量名字 = new 变量名();

◆局部变量 定义在方法块中,必须声明和初始化值,直接引用

public class Variable{
   
static int allClicks=e;//类变量
    String str="hello world";//实例变量
    public void method(){
   
		inti=e;//局部变量
}

常量
◆常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
◆所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。(修饰符不存在先后顺序 final static)

final 常量名=值;
final double PI=3.14

◆常量名一般使用大写字符。

变量的命名规范
◆所有变量、方法、类名:见名知意
◆类成员变量:首字母小写和驼峰原则:monthSalary
◆局部变量:首字母小写和驼峰原则常量:大写字母和下划线:MAX VALUE

◆类名:首字母大写和驼峰原则:Man,GoodMan

◆方法名:首字母小写和驼峰原则:run(),runRun0

07: 基本运算符

◆Java 语言支持如下运算符:

·算术运算符:+,,,/,%,++,–
·赋值运算符 =
·关系运算符:>,<,>=,<=,==,!=instanceof
·逻辑运算符:&&,l,!
·位运算符:&,|,A,~,>>,<<,>>>(了解!!!)
·条件运算符?:
·扩展赋值运算符:+=,=,
=,/=******

二元运算时自动低转高(a%b 对a取余)

08: 自增自减运算符初识Math类

​ a++ 执行后加一先赋值后自增

​ ++a 加一后执行先自增后赋值

09:逻辑运算符、位运算符

//与(and)或(or)非(取反)
boolean a=true;
boolean b=false;
System.out.print1n("a 8&b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true 
System.out.print1n("a || b:"+(allb));//逻辑或运算:两个变量有一个为真,则结果才为true 
System.out.print1n("!(a&&b):"+!(a&&b));//如架是真,则变为假,如果是假则变为真
//短路运算

​ 位运算

/*
A=00111100
B=00001101
===================
A&B=0000 1100
A/B=0011 1101
A^B=0011 0001
~B=1111  0010
===========================================================
2*8=16    2*2*2*2

<<   *2
>>	 /2
    
    0000 0000  0
     0000 0001  1
     0000 0010  2
     0000 0011  3
     0000 0100  4
     0000 1000  5
     0001 0000  6
*/
System.out.println(2<<3);

10:三元运算符及小结

	int a=10;
    int b=20;
        
    a+=b;//a=a+b
    a-=b;//a=a-b 
    System.out.println(a);
     //字符串连接符+,string 
    System.out.printin(""+a+b);//拼接
	System.out.println(a+b+"") ;//运算
===========================================================
	//三元运算符
	//	x?y:z
	//如果x==true,则结果为y,否则结果为z

10:包机制

◆为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
◆包语句的语法格式为:

package pkg1[.pkg2[.pkg3..J];

一般利用公司域名倒置作为包名;
◆为了能够使用某一个包的成员,我们需要在Java 程序中明确导入该包。使用“import”语句可完成此功能

import package1[.package2..].(classnamel*;

11:包JavaDoce生成文档

◆javadoc命令是用来生成自己API文档的
◆参数信息
◆@author作者名
◆@version 版本号
◆@since 指明需要最早使用的jdk版本
◆@param参数名
◆@return 返回值情况
◆@throws 异常抛出情况

package com. kuang. base;
/**
*@ author sha
*@ version 1.e
*@ since 1.8
*/
public class Doc{
   
String name;
/**
*@ author sha
*@ param name
*@ return
*@ throws Exception */
public string test(string name) throws Exception{
   
return name;
}

4. Java流程控制

01:用户交互Scanner

Scanner对象

◆之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。

◆基本语法:

scanner s =new Scanner(System.in);

◆通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

//凡是属于属于IO流的数如果不关闭会一直占用资源,要养成好习惯用完关掉。

◆next():

  • 1、一定要读取到有效字符后才可以结束输入。
  • 2、对输入有效字符之前遇到的空白,next(方法会自动将其去掉。
  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • 4、next0不能得到带有空格的字符串。

◆nextLine():

  • 1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
  • 2、可以获得空白。

02:Scanner进阶使用

package text;
import java.util.Scanner;
public class Demo03 {
   
    public static void main(String[] args) {
   
        //输入多个数字,,并求其和与平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果。
        Scanner input = new Scanner(System.in);
        //和
        double sum = 0;
        //计算输入了多少个数字
        int m = 0;
        //要通过循环判断每一次输入并在里面对每一次进行求和和统计
        while (input.hasNextDouble()) {
   
            double x = input.nextDouble();
            m = m + 1;
            sum = sum + x;
        }
        System.out.println(m + "个数的和为" + sum);
        System.out.println(m + "个数的平均值是" + sum / m);
        input.close();
    }
}

03:顺序结构

  • JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。

  • 顺序结构是最简单的算法结构。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LKA5inOO-1613311689203)(C:\Users\luoluo\AppData\Roaming\Typora\typora-user-images\image-20210116100409781.png)]

  • 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。

04:if选择结构

  1. if单选择结构

    • 我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kP5mBIMY-1613311689207)(C:\Users\luoluo\AppData\Roaming\Typora\typora-user-images\image-20210116101212337.png)]

    • 语法:

       if(布尔表达式){
             
          //如果布尔表达式为true将执行的语句 
       }
       
      
  2. if双选择结构

    • 那现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发。这样的需求用一个if就搞不定了,我们需要有两个判断,需要一个双选择结构,所以就有了if-else结构。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ZXRW1po-1613311689209)(C:\Users\luoluo\AppData\Roaming\Typora\typora-user-images\image-20210116103851605.png)]

    • 语法:

      if(布尔表达式){
             
      //如果布尔表达式的值为true}else{
             
      }else{
             
      //如果布尔表达式的值为false
      }
      
  3. if多选择结构

      • 我们发现刚才的代码不符合实际情况,真实的情况还可能存在ABCD,存在区间多级判断。比如90-100就是A,80-90 就是B…等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题!

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pZS2L2x2-1613311689212)(C:\Users\luoluo\AppData\Roaming\Typora\typora-user-images\image-20210116105833743.png)]

      • 语法:

        if(布尔表达式1){
                 
        //如果布尔表达式1的值为true执行代码
        }else 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值