【java基础】基础小总结

学习java,将自己的心得或总结写下来吧。

Java 标识符

标识符由字母,下划线(_),美元符($)和数字组成。

标识符不能以数字开头。

标识符不能使java关键字。

标识符对大小写敏感。

Java常用关键字


关键字


用途


boolean, byte, char, double, float, int, long, short ,void


基本类型


new, super, this, instanceof, null


对象创建,引用


if, else, switch, case, default


选择语句


do, while, for


循环语句


break, continue, return


控制转移


try, catch, finally, throw, throws, assert


异常处理


synchronized


线程同步


abstract, final, private, protected, public, static


修饰说明


class, extends, interface, implements, import, package


类,继承,接口,包


native, transient, volatile


其他方法


true, false


布尔常量

注意:

java中 的关键字均为小写字母,TRUE,NULL等不是关键字。

goto和const虽然在java中午作用,但仍是java的关键字。

java注释

单行注释符://

//这是单行注释符

多行注释符:/*……*/

/*

这是多行注释符

*/

文档注释:/**……*/

/**
  * 文档注释能被java文档化工具javadoc识别处理,在自动生成文档是有用
  */ 

Java数据类型

Java数据类型包括简单数据类型(基本类型)和复合数据类型(引用类型)

基本类型:代表语言能处理的基本数据。特点:占用的存储空间固定。

整数类型:byte,short,int,long

浮点类型:float,double

字符类型:char

布尔类型:boolean

引用类型:通常由多个基本数据类型或引用类型组合构成。

类:class

接口:interface

数组

【注意】java的字符串其实是String类的常量,它不是java数据类型。


关键字


数据类型


所占字节


默认值


取值范围


byte


字节型


1


0


-2^7 ~ 2^7-1


short


短整型


2


0


-2^15 ~ 2^15-1


int


整型


4


0


-2^31 ~ 2^31-1


long


长整型


8


0


-2^63 ~ 2^63-1


float


单精度浮点型


4


0.0F


1.4e^-45 ~ 1.4e^-45-1


double


双精度浮点型


8


0.0D


4.9e^-324 ~ 1.798e^+308


char


字符型


2


0


0 ~ 65535


boolean


布尔型


1


false


true, false

常量

布尔常量:true,false

整数常量:有byte,short,int,long四种类型。有十进制,八进制,十六进制,二进制四种表示形式。

浮点常量:有float和double类型。有小数点形式和指数形式两种。

字符常量:由一对单引号括起来的单个字符或以反斜线(\)开头的转义字符。如‘j‘, ‘4‘。

常用转义字符


转义字符


描述


\‘


单引号字符


\‘‘


双引号字符


\\


反斜杠


\r


回车


\n


换行


\f


走纸换页


\t


横向跳格


\b


退格

字符串常量:有双引号括起来的由0个或多个字符组成的字符序列。字符串可以包含转义字符。

变量的取值范围

/**
* Create by libra
*/

public class VariablesDemo {
    /**变量的取值范围*/
    public static void main(String[] args) {
        System.out.println("数据的取值范围:");
        System.out.println("字节型: " + Byte.MIN_VALUE + " ~ " + Byte.MAX_VALUE);
        System.out.println("短整型: " + Short.MIN_VALUE + " ~ " + Short.MAX_VALUE);
        System.out.println("整型型: " + Integer.MIN_VALUE + " ~ " + Integer.MAX_VALUE);
        System.out.println("长整型: " + Long.MIN_VALUE + " ~ " + Long.MAX_VALUE);
        System.out.println("单精度浮点型: " + Float.MIN_VALUE + " ~ " + Float.MAX_VALUE);
        System.out.println("双精度浮点型: " + Double.MIN_VALUE + " ~ " + Double.MAX_VALUE);

    }
}

输出结果:

强制转换

格式:变量 = (数据类型) 表达式

基本数据类型自动转换顺序:byteàshortàcharàintàlongàfloatàdouble.

【注意】布尔类型不能与其他类型转换。

运算符

运算符(双目单目)稍微提下,位运算符。

算数运算符:


算数运算符


双目运算符


单目运算符


+, -, *, /, %


++, --, -(负号)

关系运算符:

运算符优先级:(==,--) > ~ > ! > 算术运算符>移位运算符>关系运算符> &,^, | , &&, ||, ||

常用数学函数Math类


方法


功能


int abs(int i)


求整数的绝对值


double ceil(double d)


求不小于d的最小整数


double floor(double d)


求不大于d的最大整数


int max(int i1, int i2)


求两个整数中的最大数


int min(int i1, int i2)


求两个整数中的最小数


double random()


0~1的随机数


int round(float f)


求最靠近f的整数


long round(double d)


求最靠近d的长整数


double sqrt(double a)


求平方根


double cos(double d)


求d的余弦函数


double log(double d)


求自然对数


double exp(double x)


求e的x次幂(e^x)


double pow(double a, double b)


求a的次幂

输入输出

标准输出流System.out提供三种输出:

print():输出后不换行

println():输出后换行

printf():类似于c语言中的printf()用法

标准输入流System.in提供read()等方法。写一个程序便于说明及理解。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Input {
    public static void main(String[] args) throws IOException {
        System.out.println("==============字符==============");
        char ch = (char) System.in.read();
        System.out.println("读入的字符为:" + ch);
        System.out.println("==============字符串==============");
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String s = in.readLine();
        System.out.println("读入的字符串为:" + s);
        System.out.println("==============数字==============");
        String x = "123";
        int m = Integer.parseInt(x);
        String y = "123.123";
        float n = Float.parseFloat(y);
        System.out.println("x = " + x);
        System.out.println("y = " + y);
    }
}

输出结果:

还可以使用java.util.Scanner类输入:

import java.util.Scanner;

public class Input {
    public static void main(String[] args) throws IOException {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入数据:");
        System.out.println("请输入数据:");
        short a = s.nextShort();    //输入短整数
        int b = s.nextInt();    //输入整数
        long c = s.nextLong();    //输入长整数
        float d = s.nextFloat();    //输入单精度浮点型
        double e = s.nextDouble();    //输入双精度浮点型
        String f = s.nextLine();    //输入字符串
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);
        System.out.println("d = " + d);
        System.out.println("e = " + e);
        System.out.println("f = " + f);
    }
}

输出结果:

在Scanner中还有很多输入。

流程控制语句和c/c++没有太大区别。

【注意】循环结构体中可以用break 标号名; 和continue 标号名; 来跳出循环。

数组

一维数组声明有两种格式:

1.数组元素类型 数组名[];

2.数组元素类型[] 数组名;

建议用第二种声明方式

【建议】二维数组及多维数组声明方式类似于一维数组,不过建议大家用第二种数组声明方式,[]也是数组声明的组成部分。

【注意】

1.java数组和c/c++数组不同,java数组理解为数组的数组,数组的每一维的大小不一定相同。

例如:

int[][] a = new int[2][];
a[0] = new int[3];
a[1] = new int[4];

上面这段代码声明了一个二维数组,但是第0维和第1维的大小不相同。

2.求一维数组a长度经常用到的方法是a.length。若是多维数组也可以这样用:a[i].length,a[i][j].length ……。

对象

对象的初始化和构造方法以及变量的作用域在一个例子中说明。

public class Scope {
    //成员变量的作用域是整个类体
    int x;
    int y;

    /*对象的初始化*/
    {
        x = 2;
        y = 1;
    }

    /*对象的构造方法*/
    public Scope {
        x = 2;
        y = 1;
    }

    //方法参数a的作用域是整个方法
    public void method(int a) {
        int x = 5;
        for (int i = 1; i < a; i++) {
            //局部变量i的作用域是for循环内
            x = x + i;
        }
        System.out.println("x = " + x + ", y = " + y + ", a = " + a);
    }

    public static void main(String[] args) {
        //局部变量x的作用域从它的声明点扩展到它被定义的代码块结束
        Scope x = new Scope();
        x.method(6);
    }
}

【注意】构造方法的名称必须与类名相同;构造方法无返回类型;一个类可以提供多个构造方法,系统自动调用参数匹配的构造方法。

静态变量和静态方法

用static修饰的成员变量叫静态变量,也叫类变量。

访问:

在本类中直接访问。

通过类名访问。

通过类的一个对象访问。

【注意】静态变量的在存储上归属类空间,但是不依赖任何对象;(通过对象访问静态变量实质上还是访问类空间的变量)

【建议】在类外访问静态变量时通过类名访问以防混淆。

赋初值:即可以通过下面代码块赋初值,也可在定义时赋初值。

static {
//code
}

【注意】静态代码块只能访问静态变量;对象的创建不会执行static代码块。注意区分静态空间和对象空间。

class TalkPlace {
    static String talkArea = "";
}

public class User {
    static int count = 0;
    String username;
    int age;

    public User(String name, int yourage) {
        username = name;
        age = yourage;
    } 

    void Login() {
        //直接访问同一类中的静变量
        count++;
        System.out.println("you are no " + count + " user");
    }

    void Speak(String words) {
        //访问其他类的类变量,通过类名访问类变量
        TalkPlace.talkArea = TalkPlace.talkArea + username + "说: " + words + "\n";
    }

    public static void main(String[] args) {
        User x1 = new User("张三", 20);
        x1.Login();
        x1.Speak("hello");
        User x2 = new User("李四", 16);
        x2.Login();
        x2.Speak("good morning");
        x1.Speak("bye");
        System.out.println("-----讨论区内容如下:");
        System.out.println(TalkPlace.talkArea);
    }
}

用static修饰的方法叫静态方法,也叫类方法。

调用:

一般用类名做前缀调用。

通过对象调用

【注意】静态方法也不依赖任何对象;静态方法中只能处理静态变量和其他静态方法,绝不能访问任何归属对象空间的变量和方法。

public class FindPrime2 {
    public static boolean prime(int n) {
        for (int k = 2; k <= Math.sqrt(n); k++) {
           if (n % k == 0) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        // FindPrime2 a = new FindPrime2();
        for (int m = 10; m <= 100; m++) {
            //prime为静态方法,则可直接调用
            if (prime(m)) {
                   System.out.print(m + " ");
            }
        }
    }
}
时间: 2024-08-05 13:59:46

【java基础】基础小总结的相关文章

java基础知识小小结

java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程序的文件名就可以随意命名了. 文档注释,是以单斜线加两个星形标记( /**)开头,并以一个星形标记加单斜线( */)结束.用这种方法注释的内容会被解释成程序的正式文档,并能包含进如 javadoc之类的工具生成的文档里,用以说明该程序的层次结构及其方法. Java 把整数常量的数据类型均视为 int

一个小栗子聊聊JAVA泛型基础

背景 周五本该是愉快的,可是今天花了一个早上查问题,为什么要花一个早上?我把原因总结为两点: 日志信息严重丢失,茫茫代码毫无头绪. 对泛型的认识不够,导致代码出现了BUG. 第一个原因可以通过以后编码谨慎的打日志来解决,我们今天主要来一起回顾下JAVA泛型基础. 一个小栗子 先看下面一个例子,test1实例化一个List容器的时候没有指定泛型参数,那么我们可以往这个容器里面放入任何类型的对象,这样是不是很爽?但是当我们从容器中取出容器中的对象的时候我们必须小心翼翼,因为容器中的对象具有运行时的类

Java 并发基础

Java 并发基础 线程简述 线程是进程的执行部分,用来完成一定的任务; 线程拥有自己的堆栈,程序计数器和自己的局部变量,但不拥有系统资源, 他与其他线程共享父进程的共享资源及部分运行时环境,因此编程时需要小心,确保线程不会妨碍同一进程中的其他线程; 多线程优势 进程之间不能共享内存,但线程之间共享内存/文件描述符/进程状态非常容易. 系统创建进程时需要为该其分配很多系统资源(如进程控制块),但创建线程的开销要小得多,因此线程实现多任务并发比进程效率高. Java语言内置多线程支持,而不是单纯采

【Java面向对象基础(一)】数据类型与运算符

[喵"的Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数据类型 字节数 二进制位数 最小值 最大值 默认值 byte 1 8-bit -2^7 +2^7 - 1 0 short 2 16-bit -2^15 +2^15 - 1 0 int 4 32-bit -2^31 +2^31 - 1 0 long 8 64-bit -2^63 +2^63 - 1 0

Java编程基础-面向对象(中)

本章承接Java编程基础-面向对象(上)一文. 一.static关键字 在java中,定义了一个static关键字,它用于修饰类的成员,如成员变量.成员方法以及代码块等,被static修饰的成员具备一些特性. 1.static关键字的特点: a)随着类的加载而加载,也就是说,静态会随着类的消失而消失,说明它的生命周期最长. b)优先于对象存在,明确一点,静态是先存在的,对象是后存在的. c)被类的所有对象共享. d)可以通过类名调用. 2.静态变量 在一个java类中,可以使用static关键字

Java容器类基础

Java容器类基础 Java实用类库提供了一套相当完善的容器类,基本类型为List,Set,Map,Queue.它们都有一些特性,例如Set对于每一个值都只保存一个对象,Map允许你将对象和对象关联起来.此外,Java容器类都可以自动调节尺寸.因此,与数组不同,你可以放置任意数量的对象到容器中而不用担心容器应该设置为多大. Java容器类有4个接口,它们分别上面提到过的List,Set,Map,Queue:在理想情况下,你编写的代码大多数情况是在和这些接口打交道,并且你唯一需要指定所要使用精确类

JAVA一些基础概念

Java (计算机编程语言) Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程[1] . Java具有简单性.面向对象.分布式.健壮性.安全性.平台独立与可移植性.多线程.动态性等特点[2] .Java可以编写桌面应用程序.Web应用程序.分布式系统和嵌入式系统应用程序等[3] 

Java大神推荐,java编程基础必备(必看)

在没有以前的操作习惯的错误情况下,反而容易接受新知识,所以不要因为自己对java一无所知而自卑,相反,这是菜鸟们的优势,但是如何才能从一个菜鸟历练成大神呢,当然是需要学习了,不学习就想成为大神,就是在做白日梦,所以如果你想改变自己,那么你可以来我们这个交流群来学习521595826,在这里每天都能学到新鲜的知识,想不进步都难,但是如果你是一个不思进取的人,一边凉快去就行.下面来介绍下java编程基础必备知识: 第一步:下载并安装JDK 6.0,安装路径为: C:\java\jdk1.6 . 第二

Java面试求职之Java编程基础

Java编程基础 小编目前大三在读,专业电子系.由于对编程感兴趣还有就是对本专业前途的不乐观,还是勇敢的加入所谓的码农之路.学习Java也有一段时间了,快要放假了,想找家公司实习一下.至目前为止,已经面试了好几家公司了,大的有像腾讯.百度.联想这样的大公司:小的也有只有10几个员工的创业型公司.拿到过offer.也有碰壁连面试机会都没得到的. 下面就是一些对面试官面试时问的问题做的一些总结和自己搜集的一些知识点. Java概述和开发环境 Java开发包的总类            随着Java语

Java开发基础

Java开发基础 Integer 自动装箱和拆箱. Integer i = 100; // 编译后 Integer i = Integer.valueOf(100); // JDK源码: public static Integer valueOf(int i) { assert IntegerCache.high >= 127; if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache