Java核心技术学习笔记(一)

本文深入探讨了Java程序设计的关键概念,包括概述、环境、基本结构、整型与布尔转换、字符串处理、数学函数、对象与类、包组织、文档生成等核心主题。详细介绍了Java的特性、开发工具、类与对象的使用、数据类型、字符串操作、数学计算、对象的引用与复制、异常处理等。此外,还涵盖了包管理、继承、依赖、聚合、接口与抽象类等内容,为Java开发者提供了全面的技术指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章 Java程序设计概述

Java“白皮书”的关键术语:(1)简单性(2)面向对象(3)网络技能(4)健壮性(5)安全性(6)体系结构中立(7)可移植性(8)解释型(9)高性能(10)多线程(11)动态性
在网页中运行Java程序称为applet。
1996年年初,Sun发布Java的第1个版本;1998年JavaOne会议发布Java 1.2版;版本6于2006年年末发布;2011年Oracle发布Java 7.

第二章 Java程序设计环境

Java开发工具箱(JDK,Java Development Kit),Java运行时环境JRE(Java Runtime Environment)。

第三章 Java的基本程序设计结构

标准的命名规范为:类名是以大写字母开头的名词,源文件的文件名必须与公共类的名字相同,并用.java作为扩展名。
java中的所有函数都属于某个类的方法。main函数必须为public static void main(String[] args)
java中以/**开始,*/结束的注释,可以用来自动生成文档。
在java中,整型的范围与运行Java代码的机器无关,java没有任何无符号类型。
从java7开始,加上前缀0b就可以写二进制数,如0b1001就是9,还可以为数字字面量加下划线1_000_000表示1000000.
计算0/0或者负数的平方根结果为NaN(NaN不是一个数字)。
整型值和布尔值之间不能进行相互转换。
在java中,不区分变量的声明和定义,利用关键字final指示常量。使用static final设置一个类常量(就是这个常量可以在一个类的多个方法中使用)。
如果将一个类标记为strictfp,这个类中的所有方法都要使用严格的浮点计算。
>>>运算符将用0填充高位;>>运算符用符号位填充高位;没有<<<运算符。
在Math类中,包含了各种各样的数学函数。
Math.sqrt(x);计算一个值的平方根;
Math.pow(x, a);计算x的a次幂;
Math.sin,Math.cos,Math.tan,Math.atan,Math.atan2;
Math.exp,Math.log,Math.log10;
Math.PI,Math.E表示兀和e常量的近似值
如果有:import static java.lang.Math.*;则不必在数学方法名和常量名前添加前缀"Math."
不要在boolean类型与任何数值类型之间进行强制类型转换
String类的substring方法可以从一个较大的字符串提取出一个子串:
String  str = “Hello”;
String s = str.substring(0,3);

创建了一个由字符“Hel”组成的字符串。
不能修改Java字符串中的字符,在Java文档中将String类对象称为不可变字符串
使用equals方法检测两个字符串是否相等:s.equals(t);要检测两个字符串是否相等,而不区分大小写,可以使用equalsIgnoreCase方法。一定不能使用==运算符检测两个字符串是否相等。
String变量还可以存放一个特殊的值:null,这表示目前没有任何对象与该变量关联。
检查一个字符串既不是null也不是空:
if (str != null && str.length() != 0)首先要检查str不为null,因为在一个null值上调用方法会出现错误。
大多数常用的Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。length方法返回采用UTF-16编码表示的给定字符串所需要的代码单元数量。
例:String greeting = “hello”;
int n = greeting.length(); //is 5
要想得到实际的长度,即代码点数量,可调用:
int cpCount = greeting.codePointCount(0, greeting.length());
调用charAt(n)方法返回位置n的代码单元。
要想得到第i个代码点,应该使用:
int index = greeting.offsetByCodePoints(o, i);
int cp = greeting.codePointAt(index);
如果需要用许多小段的字符串构建一个字符串,应该使用StringBuilder类:
StringBuilder builder = new StringBuilder();
builder.append(ch);添加内容
要想通过控制台进行输入,首先需要构造一个Scanner对象,并与“标准输入流”System.in关联。
使用静态的String.format方法可以创建一个格式化的字符串,而不打印输出。
若对文件进行读取,则用File对象构造一个Scanner对象:
Scanner in = new Scanner(Paths.get(“mayflies.txt”));
写入文件,这构造一个PrintWriter对象:
PrintWriter out = new PrintWriter(“mayflies.txt”);
如果文件不存在,则创建该文件。
Java中的break和continue与c++的不同之处是,Java中可以使用带标签的break和continue语句。
java.math包中有两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。
使用静态的valueOf方法可以将普通的数值转换为大数值:
BigInteger a = BigInteger.valueOf(100);
不能使用+、-、*、/、%处理大数值,需要使用类中的add和multiply方法。
数组:int[] a = new int[100];
使用length获取数组元素个数。
增强的for循环语句格式为:
for (variable : collection) statement 定义一个变量用于暂存集合中的每一个元素,并执行相应的语句。collection集合表达式必须是一个数组或是一个实现了Iterable接口的类对象。
数组的初始化:int[] smallPrimes = {1,2,3,4,5};不需要new
匿名数组:new int[] {1,2,3,4,5};使用这种语法形式可以在不创建新变量的情况下重新初始化一个数组。
copyOf方法拷贝数组,通常用来增加数组的大小:
luckNum = Arrays.copyOf(luckNum, 2*luckNum.length);
使用Arrays类中的sort方法对数组进行排序。
Math.random方法返回一个0到1之间(包含0,不包含1)的随机浮点数。

第四章 对象与类

    对象中的数据域称为实例域(instance field),操纵数据的过程称为方法(method)。实现封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域。程序仅通过对像的方法与对象数据进行交互。
    在Java中,所有的类都源自于:Object
    依赖(dependence),即“uses-a”关系:一个类的方法操纵另一个类的对象,就说一个类依赖于另一个类。
    聚合(aggregation),即“has-a”关系:类A的对象包含类B的对象。
    继承(inheritance),即“is-a”关系
    一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。
    Date类表示时间点,GregorianCalendar类是日历表示法。
    new GregorianCalendar(2015, Calendar.DECEMBER, 31);
    一个源文件中,只能有一个公有类,但可以有任意数目的非公有类。
    在类的方法中,不要编写返回引用可变对象的访问器方法,因为这样可能破坏对象的数据,如果需要返回一个可变对象的引用,应该首先对它进行克隆(clone),对象clone是指存放在另一个位置上的对象副本。例:
    return  hireDay;   改为return  hireDay.clone();
    使用静态方法:(1)一个方法不需要访问对象状态 ,其所需参数都是通过显式参数提供(Math.pow);(2)一个方法只需要访问类的静态域(Employee.getNextId).
    方法参数,Java中总是采用按值调用,也就是说,方法得到的是所有参数值的一个拷贝。
    在Java中,一个构造器可以调用另一个构造器
    finalize方法将在垃圾回收器清除对象之前调用,不能依赖于这种方法。
    Java允许使用包(package)将类组织起来,借助于包可以方便地组织自己的代码,并将自己的代码与别人提供的代码库分开管理。
    所有标准的Java包都处于java和javax包层次中。使用包的主要原因是确保类名的唯一性。
    package   com.horstmann.corejava;     将类放入包中,如果没有在源文件中放置package语句,这个源文件中的类就被放置在一个默认包中,默认包是一个没有名字的包。
    javadoc工具,可以由源文件生成一个HTML文档。
    每个“/**......*/”文档注释在标记之后紧跟着自由格式文本,标记由@开始,如@author或者@param。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值