Java基础知识

 本文为Java核心技术·卷 I的读书笔记,配有代码

1.Java程序设计概述:

简单性:清除C++语法中所有不适当的特性(指针,结构,操作符重载,虚继承)

面向对象:重点放在数据(即对象)和对象的接口上

分布式:能够通过URL打开和访问网络上的对象

健壮性:指针->引用,编译器

安全性:

体系结构中立:Java编译器生成与特定的计算机体系结构无关的字节码指令(虚拟机)

可移植性:基本数据类型大小和有关运算明确说明

解释型:Java解释器执行字节码

高性能:字节码还可以动态翻译为机器码

多线程

动态性

2.Java程序设计环境

JDK/集成开发环境

3.Java的基本程序设计结构


public class Main { \\类名
    public static void main(String[] args) { \\方法
        System.out.println("Hello and welcome!");\\换行输出
        int a = 1;
        if (a == 2){
            System.out.println(a);
        }

        for (int i = 1; i <= 5; i++) {
            System.out.println("i = " + i);
        }
    }
}

Java区分大小写

public/private/protected 访问修饰符:控制程序的其他部分对这段代码(类、数据、方法)的访问级别

标准类名规范:多名词首字母大写,名字有意义

源代码的文件名必须与公共类的名字相同,并且一个源代码文件里只能有一个公共类

在类的源文件中必须包含一个main方法,也可以自定义类但在main中调用(main程序的入口)

代码块{},;一句结束

点号.用于调用方法,object.method(parameters),等价于函数调用

注释//, /* */

数据类型:8种基本类型(4种整型,2种浮点型,1种Unicode编码的字符类型char,一种表示真值的boolean类型)

Java整型:int(4字节),short(2字节),long(8字节),byte(1字节)-->全都是有符号整型

浮点类型:float(4字节),double(8字节)

char类型:'A'字符,"A"字符串

UTF-16每个字符用16位表示,代码单元

不要在程序中使用char类型,最好将字符串作为抽象数据类型处理

boolean类型:false和true,判定逻辑条件

整型值和布尔值之间不能进行相互转换

变量

每个变量都有一个类型type,使用变量前声明变量并用赋值语句对变量进行显式初始化

变量的声明尽可能靠近变量第一次使用的地方

关键字final指示常量,这个变量只能被赋值一次。一旦被赋值之后,就不能再改了(大写,类似const)

类常量->在一个类的多个方法中使用的常量 static final,定义在main方法外部

+,-,*,/,Math.sqrt(),Math.pow(x,a) ->静态方法 返回double

import static java.lang.Math.* 就不用加Math前缀了

数据类型之间的转换

实线无信息丢失,虚线可能由精度损失

强制类型转换

doubel x = 9.992;
int nx = (int) x; \\直接截断
int nx = (int) Math.round(x);\\舍入舍出

结合赋值与运算符

x += 4;//x = x+4;
int x=3;
x += 3.5; //int(x+3.5)

自加,自减 n++; n--; ++n; --n;

表达式中,前缀立马加1,后缀变量原来值再加一

==判断,!=,<,>,<=,>=,&&,|| 短路方式求值

三元操作符 condition ? expression1 : expression2

x<y ? x:y返回两者较小值

位运算:处理整型,可直接对组成整型数组的各个位完成操作。掩码得到整数的各个位

&,|,^,~ 与,或,异或,非

按位模式处理,二进制表示的n从右边数第四位数为1

int fourthBitFromRight = (n & 0b1000) / 0b1000;

利用&并结合适当的2的幂,可把其他位掩掉,只保留其中一位

<< ,>>位模式左移或右移

枚举类型,变量的取值只在一个有限的集合内:

enum Size {SMALL,MEDIUM,LARGE,EXTRA_LARGE};
Size s = Size.MEDIUM;

字符串:Unicode字符序列

String e = "";
String greeting = "Hello";

String类的substring方法可以从一个较大的字符串提取出一个子串

String greeting = "Hello";
String s = S=greeting.substring(0,3);

左闭右开,子串长度b-a

Java语言允许+号拼接两个字符串

当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串

拼接多个字符串,用一个定界符分隔

String all = String.join("/","S","M","L","XL");
//"S/M/L/XL"

不可变字符串:String类没有提供用于修改字符串的方法,字符串可共享,->副本相同存储位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值