【Learning JAVA】

Java学习笔记一

一、Java简介

1.1 是什么

简单的 面向对象的 分布式的 解释执行的 健壮的 安全的 结构中立的 可移植的 高效率的 多线程的 动态的和跨平台的编程语言

1.2 主要特点

(1),Java 语言是简单的

语法简单,易于学习和使用。

(2),Java 语言是面向对象的

java提供类、接口和继承等面向对象的特性

(3),Java语言是分布式的

Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。
Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。

(4),Java 语言是健壮的

强类型机制、异常处理、垃圾的自动收集、安全检查机制。

(5),Java语言是安全的

安全机制防恶意代码的攻击;
对通过网络下载的类具有一个安全防范机制(类 ClassLoader)
安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。

(6),Java 语言是体系结构中立的

体系结构中立的字节码格式可以在实现这个Java平台的任何系统中运行。
这种途径适合于异构的网络环境和软件的分发。

(7),Java 语言是可移植的

可移植性来源于体系结构中立性;
Java 系统本身也具有很强的可移植性。

(8),Java 语言是解释型的

在运行时,解释执行字节码文件。

(9),Java 是高性能的

与那些解释型的高级脚本语言相比,Java 的确是高性能的。
Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。

** (10),Java 语言是多线程的**

Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。

(11)Java 语言是动态的

Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。
Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

二、Java安装及环境配置

JDK、JRE、JVM

1,下载JDK并安装

https://www.oracle.com/java/technologies/downloads/

2,环境配置

2.1 环境变量→系统变量→新建:

变量名:  JAVA_HOME
变量值:  实际安装路径(bin目录的绝对路径)

2.2 环境变量→系统变量→Path→编辑→新建:

变量值:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin,

3,验证安装成功

cmd输入 java -version

在这里插入图片描述

4,JAVA集成开发环境

Intellij IDEA
下载地址:[https://www.jetbrains.com/idea/download/](https://www.jetbrains.com/idea/download/)

5,IDEA快捷键

在这里插入图片描述
在这里插入图片描述

6,第一个java程序

public class HelloWorld(){
   
	public static void main(String[] args){
   
		System.out.println("Hello World!!");
	} 
}

三、java基础语法

3.1 类、对象、方法、实例

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。

  • :类是一个模板,它描述一类对象的行为和状态。
  • 对象:对象是类的一个实例,有状态和行为。
  • 方法:方法就是行为,一个类可以有很多方法。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

3.2 基本语法

  • 大小写敏感
  • 类名:首字母大写,驼峰法;
  • 方法名:以小写字母开头,驼峰法;
  • 源文件名:必须和类名相同;
  • 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。

3.3 标识符

类名、变量名以及方法名都被称为标识符。

  • 标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始;
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合;
  • 关键字不能用作标识符;
  • 标识符是大小写敏感的;

3.4 Java修饰符

修饰类、方法或者变量(属性)。主要有两类修饰符:

  • 访问控制修饰符:
    访问控制修饰符
修饰符 当前类 同一包内 同一包的子孙类 不同包的子孙类 其他包
public Y Y Y Y Y
protected Y Y Y Y/N1 N
default Y Y Y N N
private Y N N N N
  • 非访问控制修饰符 : final, abstract, static, synchronized

非访问权限修饰符

3.5 Java 变量

变量作为程序中最基本的存储单元,要素包括:变量类型,变量名,作用域

  • 类变量(静态变量):类内、方法外定义的变量,使用static修饰,从属于类,在程序结束时销毁。
  • 成员变量(实例变量):类内、方法外定义的变量,会自动初始化,有默认值,在对象创建的时候创建,在对象被销毁的时候销毁
  • 局部变量:方法或语句内部定义的变量,必须先声明后赋值,方法结束后自动销毁。
public class Variable{
   
    static int allClicks=0;    // 类变量
 
    String str="hello world";  // 实例变量
 
    public void method(){
   
 
        int i =0;  // 局部变量
 
    }
}

3.6 Java 关键字

3.7 Java注释

// 单行注释

/*
	多行注释
*/

/**
 * 文档注释
 **/

3.8 Java运算符

运算符

  • 优先级 从上往下,由高到低。
    优先级

四、对象和类

  • 类:类是一个模板,它描述一类对象的行为和状态。
  • 对象:对象是类的一个实例,有状态(属性)和行为(方法)。
    类和对象

4.1 定义类

public class Dog {
   
    String breed;
    int size;
    String color;
    int age;
    
    void eat(){
   }
    
    void run(){
   }
    
    void sleep(){
   }
    
    void name(){
   }
}

4.2 构造方法

  • 每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法,默认构造方法的访问修饰符和类的访问修饰符相同。
  • 在创建一个对象的时候,至少要调用一个构造方法。
  • 构造方法的名称必须与类同名,一个类可以有多个构造方法。
  • 当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。

4.3 创建对象

  • 对象是根据类创建的。
  • 在Java中,使用关键字 new 来创建一个新的对象。
  • 创建对象需要以下三步:
    : 声明:声明一个对象,包括对象名称和对象类型。
    :实例化:使用关键字 new 来创建一个对象。
    :初始化:使用 new 创建对象时,会调用构造方法初始化对象。
public class Puppy {
   
    public Puppy() {
   
    }
    
    public Puppy(String name){
   
        System.out.println("The name of the puppy is " + name);
    }

    public static void main(String[] args) {
   
        Puppy myPuppy = new Puppy("tommy");
    }
}

4.4 访问实例变量和方法

public class Puppy{
   
   int puppyAge;
   public Puppy(String name){
   
      // 这个构造器仅有一个参数:name
      System.out.println("小狗的名字是 : " + name ); 
   }
 
   public void setAge( int age ){
   
       puppyAge = age;
   }
 
   public int getAge( ){
   
       System.out.println("小狗的年龄为 : " + puppyAge ); 
       return puppyAge;
   }
 
   public static void main(String[] args){
   
      /* 创建对象 */
      Puppy myPuppy = new Puppy( "tommy" );
      /* 通过方法来设定age */
      myPuppy.setAge( 2 );
      /* 调用另一个方法获取age */
      myPuppy.getAge( );
      /*你也可以像下面这样访问成员变量 */
      System.out.println("变量值 : " + myPuppy.puppyAge ); 
   }
}

五、数据类型

5.1 数据类型

数据类型

5.2 数据常量

  • 常量在程序运行时是不能被修改的,通常使用大写字母表示。
final double PI = 3.1415926

5.3 自动类型转换

  • 从低级到高级由编译器自动完成的类型转换

      byte,short,char—> int —> long—> float —> double 
    

5.4 强制类型转换

  • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换,转换过程中可能导致溢出或损失精度
public class QiangZhiZhuanHuan{
   
    public static void main(String[] args){
   
        int i1 = 123;
        byte b = (byte)i1;//强制类型转换为byte
        System.out.println("int强制类型转换为byte后的值等于"+b);//b=123
    }
}

5.5 隐含强制类型转换

  • 整数的默认类型是 int。
  • 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。

六、程序控制语句

6.1 顺序语句

从上到下,从左到右执行,语句只执行一次。

6.2 循环语句

(1)while循环

public class Test1 {
   
    public static void main(String[] args) {
   
        int x = 10;
        while (x < 20){
   
        	System.out.println(x);
            x++;
        }
    }
}

(2)do…while循环

public class Test2 {
   
    public static void main(String[] args) {
   
        int x = 10;
        do {
   
        	System.out.println(x);
            x++;
        }while (x < 20);
    }
}

(3)for循环

public class Test3 {
   
    public static void main(String[] args) {
   
        for (int x = 10; x < 20; x = x + 1){
   
            System.out.println(x);
        }
    }
}

(4)增强for循环

  • 主要用于数组
public class Test4 {
   
    public static void main(String[] args) {
   
        int [] num = {
   10, 20, 30, 40, 50};
        for (int x : num){
   
            System.out.println(x);
        }
    }
}

(5)break和continue

  • break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块
  • continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代

6.3 条件语句(if…else)

public class Test5 {
   
    public static void main(String[] args) {
   
        int x = 30;
        int y = 50;
        //1
        if (x < 40){
   
            System.out.println(x + "<40");
            if (x<35){
   
                System.out.println(x + "<35");
            }
        }
        //2
        if (x>20){
   
            System.out.println(x + ">20");
        }else {
   
            System.out.println(x + "<=20");
        }
        //3
        if (x < 20){
   
            System.out.println(x + "<20");
        }else 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值