简单讲讲java中的小概念

2022-08-07,,,

文章目录

      • 什么是java
      • jvm概述
      • java文件的本质是什么?
      • 什么是面向对象编程
        • 面向对象编程
        • 面向过程编程
        • 两者对比
      • main方法是程序的入口,可是main方法为什么要写成:public static void main(String [] args){}?
      • 使用void的原因
      • java的语法
      • java测试:定义一个User类,定义一个睡觉的方法

什么是java

Java是一种为多个平台生成软件的编程语言。由Sun Microsystems的前计算机科学家James A. Gosling在20世纪90年代中期开发的。编译的代码可在大多数操作系统上运行
使用idea创建src的java文件时自带一个Main.java文件,该文件输出一句"Hello World",这是为什么呢?原来Hello World 中文意思是『你好,世界』。因为《The C Programme Language》中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。

public class HelloWord{
	public static void main(String [] args){
		System.out.println("A new life was born His name is java.");
		
	}
	
}
     

目前在rpc架构中的一些服务软件是java写的,在业务代码j方面ava也占据半壁江山,对于运维人员来讲会一门java语言在查看业务代码、服务运行报错或者自学其他企业级服务软件的时候会有很大作用。学语言从相对规范、复杂的学起再学习其他语言会有触类旁通的效果。归根结底无论计算机语言还是口语交流语言都是工具和媒介,最好根据公司需求和生活需求来学习。

jvm概述

  • java版本介绍

    • JavaSE,即Java标准版(以前简写J2SE)Java技术核⼼和基础,是J2ME和J2EE编程的基础
    • JavaEE,即Java企业版(以前简写J2EE)java技术中应⽤用应⽤用最广泛的部分.
    • JavaME,即Java微型版(以前简写J2ME),主要⽤用于移动设备
  • JVM、JRE、JDK关系?

    • JVM

      • Java Virtual Machine Java 虚拟机,简单看成⼀个操作系统,java程序会首先被编译
        为.class的字节码,根据字节码指令进⾏识别并调⽤上层操作系统
    • JRE

      • Java Runtime Environment java 运⾏时环境, 是整个 Java 程序运⾏行行的核⼼
    • JDK

      • Java Development Kit 是我们的开发⼯具包,它集成了了 JRE, 是整个 Java 开发的核心
    • 总结

      • JRE = 基本类库 + JVM,没有JRE,java程序法运
      • JDK = JRE+JVM+开发具包
      • Java核心优势:一次编译,到处运⾏行行,能够跨平台运行的核心在于 JVM

java文件的本质是什么?

java文件本质其实就是文本文件,我们可以用任何文本编辑器对它进行编译(不信的话可以试试选择打开方式,只要是使用文本编辑器它的内容都不会改变),只要最后它的扩展名为.java就可以使用java虚拟机jvm对其进行编译和运行。

什么是面向对象编程

面向对象编程

维基百科给出的解释 :
是一种具有对象概念的程序编程典范.同时也是一种程序开发的抽象方针。
它可能包含数据、属性、代码与方法。对象则指的是类的实例(.class)!!!。
它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性
对象的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,
计算机程序会被设计成彼此相关的对象

面向过程编程

面向过程是具体的东西,而且面向过程是面向对象的基础.一般情况下,面向过程是自顶向下逐步求精,其最重要的是模块化的思想方法。因此在模块化编程的时候才会有“低耦合,高内聚”(模块越单一化越是高内聚的思想表现)的思想来提高效率。通俗来说就是专事专做

两者对比

面向过程是具体化的,流程化的。解决一个问题,需要一步一步分析需要怎样,然后需要怎样,一步一步实现的。面向对象是模型化的,抽象出一个类,这是一个封闭的环境,在这个环境中有数据有解决问题的方法,你如果需要什么功能直接使用就可以了,至于是怎么实现的,你不用知道。

从代码层面来看,面向对象和面向过程的主要区别就是数据是单独存储还是与操作存储在一起。在类的里边,实现具体的功能还是需要流程化、具体化的代码去实现的,在类里还是需要具体的算法来实现的。总结来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象。

main方法是程序的入口,可是main方法为什么要写成:public static void main(String [] args){}?

首先 main是java程序的入口,java程序通过java虚拟机JVM调用,属于外部调用,所以需要使用public修饰,否则虚拟机无法调用。
  在java中,没有static的变量或函数,如果想被调用的话,是要先新建一个对象才可以。而main函数作为程序的入口,需要在其它函数实例化之前就启动,这也就是为什么要加一个static。main函数好比一个门,要探索其它函数要先从门进入程序。static提供了这样一个特性,无需建立对象,就可以启动。

使用void的原因

使用void的原因是当main方法出现返回值时JVM无法进行上抛,如果有返回值难道抛给操作系统么?

String[]args中args—>是数组的名字,并不是固定的,不信可以自己试试,它是声明了一个可从控制台接受的数据的类型为String数组,所以main方法中其实除了这个arg意外其他都必须是固定格式。从控制台你接收参数的方法如下图:

我现在java文件中输出args数组中下标为0的值

然后再控制台运行的时候顺便输入a、b、c三个参数进去

我们可以看到它输出了第一个值,说明从控制台接收到了参数。

第一次运行时出现的问题:

JDK编译正常,那么JAVA_HOME配置正确。如果这样的话,那你的类的放的实际位置,package设置的和类路径的设置不匹配,执行器找不到类文件;说白了就是编译后的class文件的路径问题。

两种解决办法:

1.把package语句去掉,让编译文件处于当前文件夹

例如我将java文件的package去掉,将文件放在桌面,编译通过

2.不去掉package,在java文件同级目录加一个package相同名称的文件夹

java的语法

通过上面贴出来的简单代码来说一下java语法
基础语法:

  • java文件名:
    文件名必须和类名相同,后缀为.java; 否则会出错
    public
    表示程序的访问权限,表示的是任何的场合可以被引用
  • 类class:
    就是模板,用来定义一类对象的方法和属性,比如人、学生、猫,万物都是有模板,都
    是可以定义为类。表示声明一个类,类名的首字母需要大写,多个单词的话需要使用驼峰形式
    HelloWorld、UserAccount、User
    格式是
//表示学生的类
class Student{
}

class Person{
}

class Cat{
}

说白了 就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。举一个例子说明下类,比如Person(人)就是一个类,那么具体的某个人“张三”就是“人类”这个类的对象,而“姓名、身高、体重”等信息就是对象的属性,人的动作比如“吃饭、穿衣”等就是对象的方法。总之类就是有相同特征的事物的集合,而对象就是类的一个具体实例。同时类有多态和继承,例如“人类”可以分为“男人、女人”,“老人、小孩”那么“男人、女人”就是“人类”的子类等等。
属性:
比如学生都有年龄,姓名等属性(面向过程的时候,一般叫变量;面向对象编程,一般
就叫属性
参数:外部传递过来的叫参数
变量:除开属性之外的,和除开参数之外,就叫变量

class Student{
//定义一个年龄的属性
private int age;
//定义一个名称的属性
private String name;
public void set(int age){
this.age = age;
}
//定义一个吃饭的⽅方法
public void eat(){
}
//定义一个睡觉的⽅方法
public void sleep(){
}
}

Java语言中对类Person的定义往往如下:

public class Person {

private String name; //属性:姓名

private int height; //属性:身高

private int weight; //属性:体重

public Person() {}

public Person(String name, int height, int weight) {

this.name = name;

this.height = height;

this.weight = weight;

}

//... some methods...

public void doSth() { //行为:

//... do something

}}

Java中的类

类可以看成是创建Java对象使用的模板。

通过下面一个简单的类来理解下Java中类的定义:

public class Dog{  String breed;  int age;  String color;void barking(){  } void hungry(){  }  void sleeping(){  }}

一个类可以包含以下类型变量:

  • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

  • 成员变量:,成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
    狗这个类中的品种(breed)、年龄(age)和颜色(colour)都是针对狗的属性,或者说是成员变量

  • 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。

一个类可以拥有多个方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog类的方法。
由于目前刚开始学习 我本人对java的理解还是不够深入
java中的这些类、属性、方法有点类似于包含关系、用数学的韦恩图能很好的表示出来,也有点像生物学上由高到低给生物分类的等级 "界、门、纲、目、科、属、种"的概念
方法:
方法名需要小写字母开头,若有几个单词,则后续的采用驼峰形式
主方法:
固定搭配,需要硬记,所有程序的主入口 public static void main(String [] args)
所有变量量、名称都是大小写敏敏感的!!!!

java测试:定义一个User类,定义一个睡觉的方法

//总要求:定义一个User类 定义User类的睡觉方法
//先定义一个User类(类名一定大写)
public class User {
   //定义一个睡觉方法 在这里sleep就是User的属性
    public  void  sleep(){
        //print一句输出内容
        System.out.println("辗转反侧,寤寐思服");
    }
    //函数主入口 这个就是上面提到要背过的
    public  static void  main (String [] args){
       //给自己创建的User这个类定义一个对象
        User user = new User();
       //对象来调用方法
       user.sleep();
    }
}

本文地址:https://blog.csdn.net/a1308422754/article/details/107286047

《简单讲讲java中的小概念.doc》

下载本文的Word格式文档,以方便收藏与打印。