Core_Java_全面的java基础内容
- 格式:doc
- 大小:244.50 KB
- 文档页数:33
Chapter 01Getting Started一、核心概念1.什么叫类?类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。
2.什么叫对象?在面向对象概念中,对象(Object)是类的实例(instance)。
对象与类的关系就像变量与数据类型的关系一样。
3.类的核心特性有哪些?类具有封装性、继承性和多态性。
封装性:类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。
继承性:类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动拥有被继承类(父类)的全部成员。
多态性:类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。
4.方法对象中的方法表达了对象所具有的行为。
方法实际上就是函数。
5.属性一个对象的属性是能够被外界或对象所处的环境所感知或操纵的数据或状态。
6.Java是什么?Java是一门易于变成的跨平台编程语言,同时又是一个开发、应用、执行和部署平台。
Java包括Java编程语言,开发工具和环境、Java类库等。
Java语言是由美国Sun公司开发的一种完全面向对象的程序设计语言。
Java语言由C++语言发展起来,但比C++语言简单。
Java语言具有简单、与平台无关、高效、健壮、安全、多线程等特点,它是当前网络编程的首选语言。
Java既是一门编程语言又是一个平台。
7.为什么要用Java?最主要的原因是Java与平台无关,一次编译,处处运行,以及它的易于编程的特性。
8.用Java开发程序的步骤是怎么样的?编写源代码(*.java)→编译(javac *.java)→执行(java *.class)9.Java的环境变量由于Java是平台无关的,安装JDK时Java不会自动设置路径,也不会修改注册表,需要用户自行设置环境变量,但不需要修改注册表。
JAVA_HOME:JDK的安装路径;CLASSPATH:JVM装载、class字节码文件时的搜索路径;PATH:系统的环境变量,命令的搜索路径。
第一讲 Java语言入门1.1 Java的特点1.1.1面向对象:•与C++相比,JAVA是纯的面向对象的语言C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使C++成为一个"混血儿"。
而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。
1.1.2可移植(平台无关性):•生成中间字节码指令与其他编程语言不同,Java并不生成可执行文件(.exe文件),而是生成一种中间字节码文件(.class文件)。
任何操作系统,只要装有Java虚拟机(JVM),就可以解释并执行这个中间字节码文件。
这正是Java实现可移植的机制。
•原始数据类型存储方法固定,避开移植时的问题Java的原始数据类型的大小是固定的。
比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像Sun SPARC这样的32位处理器中,整数用4个字节表示。
在Intel Pentium处理器上,整数类型由具体的操作系统决定:对于DOS和Win32来说,整数是2个字节;对于Windows 9x 、NT和2000,整数是4个字节。
当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。
Java的字符串,则采用标准的Unicode格式保存。
可以说,没有这个特性,Java的可移植性也不可能实现。
1.1.3简单•JAVA在语法上与C++类似JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法;•取消了C++的一些复杂而低效的特性比如:用接口技术代替了C++的多重继承。
C++中,一个类允许有多个超类,这个特性叫做"多重继承",多重继承使得编译器非常复杂且效率不高;JAVA的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能其它被取消的特性包括:虚拟基础类、运算符过载等•JAVA的基本解释器和类支持模块大概仅40K即使加入基本的标准库和支持线程的模块,也才220K左右。
2010-7-23猛哥推荐技术网站CSDN IBM中国 J道 javaBBSJava语言的好处1、加速开发速度2、一次编写到处运行(跨平台,windows下的ext在linux,unix下不可执行)3、简化开发,降低开发难度4、对外没有指针(JVM是用C++实现的)Java属于复合型:先编译后解释。
JDK的环境变量配置Windows下在我的电脑☞系统属性☞高级☞环境变量配置JAVA_HOME 中配置的是java的安装目录Classpath中配置的是class文件的目录,一般配置,既可以配置jdk中的jar包进去(JDBC会自动配置),类库的路径(lib),”.”一般代表当前目录Path中配置的是可执行命令的路径(bin),path在windows系统变量中是有的,配path 时千万不要将原来的内容删除,在最前面配置。
linux下Java环境的配置Linux:/etc/.profile这是所有用户的全局文件主目录下的.bash_profile 这是当前用户的全局文件到当前用户的目录下,用vi .bash_profile在文件的最后加上以下内容(文件非空) export JAVA_HOME=某个目录(bin和lib的上层);expert PATH=某个目录/bin:$PATH;其中PATH绝对不能错,否则系统会崩溃export CLASSPATH=.:某个目录/lib;保存退出。
二、第一个程序体验步骤:1、vi xx.java2、编辑xx.java文件3、javac编译生成xx.class文件4、如编译通过,用java 包名.类名运行package day01;public class First{public static void main(String[] args){String name="wang";int age=25;System.out.println("my name is :"+name);System.out.println("my age is :"+age);}}编译运行:编译:javac -d . First.java //-d 代表生成目录,.代表当前目录,把目录生成到当前。
1.前言 (4)1.1.JA V A特点 (4)1.2.运行原理 (4)1.3.JA V A目录 (4)2.一.基础知识 (4)2.1.配置环境 (4)2.2.Java中基本概念 (5)3.二.定义,关键字和类型 (5)3.1.注释的三种形式 (5)3.2.Java代码中的“;”、“{}”、“” (5)3.3.标识符 (5)3.4.数据类型 (6)3.5.命名规则 (6)4.三.表达式和控制流 (6)4.1.变量和作用域 (6)4.2.操作符 (7)4.3.数字类型之间的转换 (7)4.4.强制类型转换 (8)4.5.转换的二种类型 (8)4.6.控制流 (8)4.7.循环语句 (8)5.四.数组 (9)5.1.声明数组 (9)5.2.创建数组 (9)5.3.初始化数组 (10)5.4.多维数组 (10)5.5.数组拷贝 (10)6.五.对象和类 (11)6.1.面向对象与面向过程 (11)6.2.对象的概念 (12)6.3.成员变量和局部变量 (12)6.4.成员方法 (12)6.5.This关键字 (13)6.6.访问控制符 (13)6.7.构造方法 (13)6.8.数据和方法的隐藏―――封装 (14)6.9.方法的重载 (15)7.六.高级语言特性 (15)7.1.封装(encapsulation) (15)7.2.继承(inherit) (16)7.2.1.JA V A继承特点 (16)7.2.2.父类(SuperClass)和子类(SubClass)的关系 (17)7.2.3.系统构造一个对象的顺序 (17)7.3.多态(polymorphism) (18)7.3.1.方法的覆盖(overridding) (18)7.3.2.多态的分类 (18)7.3.3.运行时多态的三原则 (19)7.3.4.关系运算符:instanceof (20)7.4.静态变量,方法和类 (20)7.5.Singleton模式 (22)7.6.final关键字 (22)7.6.1.final变量不能被改变; (22)7.6.2.final方法不能被改写; (23)7.6.3.final类不能被继承; (23)7.6.4.String 类 (23)7.7.抽象类 (24)7.8.接口(模板方法模式) (25)7.9.Object 类 (27)7.10.封装类 (28)7.11.内部类 (29)7.11.1.内部类的分类 (29)7.11.2.成员内部类 (29)7.11.3.局部内部类 (30)7.11.4.静态内部类 (30)7.11.5.匿名内部类 (31)7.12.集合 (31)7.12.1.集合接口类层次 (32)7.12.2.集合类层次 (33)7.12.3.五个最常用的集合类之间的区别和联系 (33)7.12.4.比较 (35)7.13.反射 (37)8.七.异常 (37)8.1.异常的基本概念 (37)8.2.捕获异常 (38)8.3.处理异常 (38)8.4.捕捉多个异常 (38)8.5.finally 声明 (38)8.6.异常调用栈 (39)8.7.异常层次 (39)8.8.一些未检查的异常 (39)8.9.写你自己的异常 (39)8.10.抛出你自己的异常 (40)9.八.图形用户接口 (40)10.九.AWT(Abstract Window Toolkit)事件模型 (41)11.十.The AWT Component Library (41)12.十一.JFC(Java Foundation Classes) (41)13.十二.Applets (41)14.十三.线程Thread (41)14.1.线程原理 (41)14.2.线程实现的两种形式 (42)14.3.线程的生命周期 (43)14.4.Thread的方法 (43)14.5.共享数据的并发处理 (44)14.6.使用互斥锁的注意事项 (44)15.十四.标准I/O流与文件 (46)15.1.对文件的操作 (46)15.2.处理跨平台性 (46)15.3.对象的序列化接口 (47)15.4.I/O流基础 (47)15.5.流的分类 (47)15.6.I/O输入输出 (48)16.十五.网络编程 (52)16.1.网络基础知识 (52)16.2.TCP Socket (54)16.2.1.建立TCP服务器端 (54)16.2.2.建立TCP客户端 (55)16.3.建立URL连接 (55)16.4.UDP socket (58)16.4.1.建立UDP 发送端 (58)16.4.2.建立UDP 接受端 (59)17.java5.0的新特性 (59)17.1.泛型 (59)17.1.1.说明 (59)17.1.2.用法 (60)17.1.3.泛型的通配符"?" (62)17.1.4.泛型方法的定义 (63)17.1.5.泛型类的定义 (63)17.1.6.泛型与异常 (64)17.1.7.泛型的一些局限型 (65)17.2.增强的for循环 (66)17.3.自动装箱和自动拆箱 (69)17.3.1.在基本数据类型和封装类之间的自动转换 (69)17.4.类型安全的枚举 (69)17.5.静态引入 (71)17.6.C风格的格式化输出 (72)17.7.Building Strings(StringBuilder类) (73)17.8.可变长的参数 (73)17.9.JA V A5.0 的注释(Annotation) (73)17.10.Callable 和Future接口 (74)1.前言1.1. JAVA特点1) 简单(Java语法是C++语法的一个“纯净”版本);2) 可移植性(一次编译到处运行)3) 面向对象4) 分布式(Java把打开套接字连接等繁琐的网络任务变得非常容易)5) 健壮性(Java编译器会检查出很多其他语言在运行时刻才显示出来的错误;Java采用的指针模型可以消除重写内存和数据崩溃的可能)6) 多线程(多线程编程的简单性是Java成为流行的服务器端开发语言的主要原因之一)7)安全(用Java可以构建防病毒和防篡改的系统)9) 动态(Java可随意增加新的方法以及实例变量,而客户端却不需做任何的更改)10)体系结构中立(字节码与计算机体系结构无关,只要存在运行时系统,可在多种处理器上执行)1.2. 运行原理先编译*.java文件――――>*.class文件运行*.class ――加载――> JVM(JA V A虚拟机)1.3. JAVA目录JRE―――――――运行环境SRC――――――-类库BIN―――――――应用程序2.一·基础知识2.1. 配置环境LINUX系统(修改环境配置文件)1 打开shell2 vi .bash_profile3 JA V A_HOME=JA V A目录路径4 PATH=$JA V A_HOME/bin:其他路径5 CLASSPATH=.6 export JA V A_HOME CLASSPATHWindows系统我的电脑属性―――>环境变量设置环境变量:JA V A_HOME=路径PATH = %PATH%;c:\j2sdk1.4.2_05\bin;CLASSPATH = .;2.2. Java中基本概念1) 源文件在最顶层只包括一个public类型的类/接口,文件名与类/接口名同并以.java作为文件后缀。
Java基础知识总结(超详细整理)Java语⾔的特点1.⾯向对象⾯向对象(OOP)就是Java语⾔的基础,也是Java语⾔的重要特性。
⾯向对象的概念:⽣活中的⼀切事物都可以被称之为对象,⽣活中随处可见的事物就是⼀个对象,我们可以将这些事物的状态特征(属性)以及⾏为特征(⽅法)提取并出来,并以固定的形式表⽰。
2.简单好⽤Java语⾔是由C和C++演变⽽来的,它省略了C语⾔中所有的难以理解、容易混淆的特性(⽐如指针),变得更加严谨、简洁、易使⽤。
3.健壮性Java的安全检查机制,将许多程序中的错误扼杀在摇蓝之中。
另外,在Java语⾔中还具备了许多保证程序稳定、健壮的特性(强类型机制、异常处理、垃圾的⾃动收集等),有效地减少了错误,使得Java应⽤程序更加健壮。
4.安全性Java通常被⽤在⽹络环境中,为此,Java提供了⼀个安全机制以防恶意代码的攻击,从⽽可以提⾼系统的安全性。
5.平台⽆关性Java平台⽆关性由Java 虚拟机实现,Java软件可以不受计算机硬件和操作系统的约束⽽在任意计算机环境下正常运⾏。
6.⽀持多线程在C++ 语⾔没有内置的多线程机制,因此必须调⽤操作系统的多线程功能来进⾏多线程程序设计,⽽ Java 语⾔却提供了多线程⽀持。
多线程机制使应⽤程序在同⼀时间并⾏执⾏多项任务,该机制使得程序能够具有更好的交互性、实时性。
7.分布式(⽀持⽹络编程)Java语⾔具有强⼤的、易于使⽤的⽹络能⼒,⾮常适合开发分布式计算的程序。
java中提供了⽹络应⽤编程接⼝(),使得我们可以通过URL、Socket等远程访问对象。
8.编译与解释共存Java语法基础标识符: ⽤来标识类名、对象名、变量名、⽅法名、类型名、数组名、⽂件名的有效字符序列。
合法的标识符:由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且⾸字符不能是数字。
不能把java关键字和保留字作为标识符。
标识符对⼤⼩写敏感。
关键字:Java语⾔中已经赋予了特定含义的保留字: const、goto,Java版本中尚未使⽤,但以后版本可能会作为关键字使⽤变量:程序运⾏期间可以被改变的量。
CoreJava 学习手册整理者:Eric日期:2008-1-13版本号:V08010131 Java 入门准备知识1.1从面向过程编程到面向对象编程的思维转变我们知道所有的计算机程序都是由两类元素组成:代码和数据。
此外从概念上将讲,程序还可以以他的代码或是数据为核心进行组织编写。
也就是说一些程序围绕“正在发生什么编写“,而另一些程序则围绕”谁将被影响“编写。
这两种范型决定程序的构建方法。
第一种方法被称为面向过程的模型,用他编写的程序都具有线性执行的特点。
面向过程的模型可以认为是代码作用于数据,用C写的程序就是典型的面向过程模型。
第二种方法也就是我们现在正在学习的面向对象编程,面向对象编程围绕她的数据(即对象)和为这个数据严格定义的接口来组织程序。
面向对象的程序实际上就是用数据控制对代码的访问。
CoreJava就是一门纯面向对象编程的语言。
学习方法很简单,就是模仿、改进、创新,循环往复。
1.2什么是字节码和虚拟机字节码是一套设计用来在Java运行时系统下执行的高度优化的指令集。
该Java运行时系统称为Java虚拟机(JVM)。
JVM其实就是一个字节码解释器。
虚拟机将字节码解释成机器码给CPU执行,所以我们在java中通过虚拟机的这种解释执行方式来屏蔽底层操作系统的差异。
JRE = JVM+编译器 JDK=JVM+编译器+类库查看类库源码在:JDK/src.zip压缩包里2 Java 开发环境的配置及开发须知2.1环境变量的设置需要新加的两个环境变量1、JAVA_HOME:指明 JDK 的位置。
2、CLASSPATH:指明到哪里去找运行时需要用到的类代码(字节码)原有的环境变量1、PATH:指明可执行程序的位置。
2、EXPORT :将指定的环境变量声明为全局的。
我们在.bash_profile下的环境变量设置。
JAVA_HOME=/opt/jdk1.5CLASSPATH=.PATH=$PATH:$JAVA_HOME/bin:.注:“.”代表当前目录当我们把环境变量都配置好了以后在终端敲入‖java -version‖命令如果出现JDK版本号信息就表示我们环境变量设置成功了。
java核心基础知识有哪些_java面试基础知识Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
下面是小编为大家整理的java核心基础知识,希望对你们有帮助。
Java核心基础知识1、先了解什么是Java的四个方面初学者先弄清这些Java的基本概念也是必不可少的,死记硬背肯定是不行的,重在理解,理解它们之间的区别与联系,分别有哪些应用。
想想这些代码中用到了哪些知识点。
不要一味地照着书本敲代码。
而不去理解。
1.Java编程语言,即语法。
2.Java文件格式,即各种文件夹、文件的后缀。
3.Java虚拟机(JVM),即处理_.class文件的解释器。
4.Java应用程序接口(Java API)。
2、掌握静态方法和属性静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。
Java中大量应用了静态方法和属性,这是一个通常的技巧。
但是这种技巧在很多语言中不被频繁地使用。
理解静态方法和属性对于理解类与对象的关系是十分有帮助的,在大量的Java规范中,静态方法和属性被频繁使用。
因此学习者应该理解静态方法和属性。
Java在方法和属性的调用上是一致的,区别只表现在声明的时候,这和c++是不同的。
3、初学者还需明白JAVA的三个技术平台的关系Java分为三个体系,分别为Java SE(J2SE,Java2 Platform Standard Edition,标准版)。
JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版)。
Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。
要知道java是分两部分的:一个是编译,一个是运行。
javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。
对指定扩展名的.java文件进行编译。
core java知识点总结Core Java is a foundational programming language that is widely used for developing applications and software. It provides a strong base for developing enterprise-level applications, web applications, and mobile applications. It is essential for any Java developer to have a clear understanding of core Java concepts in order to write efficient and error-free code. This article aims to summarize some of the key core Java concepts, including object-oriented programming, multithreading, collections, and I/O, among others.1. Object-Oriented Programming (OOP)Object-oriented programming is a programming paradigm that revolves around the concept of objects. In Java, everything is an object except for primitive data types. The key principles of OOP are inheritance, encapsulation, polymorphism, and abstraction.a. Inheritance: Inheritance is the mechanism by which a class can inherit properties and behavior from another class. It promotes code reusability and helps in creating a hierarchical relationship between classes.b. Encapsulation: Encapsulation is the concept of hiding the internal implementation details of a class and exposing only the necessary functionalities. It is achieved through access specifiers such as private, protected, and public.c. Polymorphism: Polymorphism allows objects to be treated as instances of their parent class, enabling flexibility and extensibility. There are two types of polymorphism in Java: compile time (method overloading) and runtime (method overriding).d. Abstraction: Abstraction is the process of hiding the implementation details and showing only the necessary features of an object. It is achieved through abstract classes and interfaces.2. MultithreadingMultithreading is a powerful feature of Java that allows concurrent execution of multiple threads within a single process. It is used to utilize the CPU efficiently and to create responsive and interactive applications. Java provides built-in support for multithreading through the ng.Thread class and the java.util.concurrent package.a. Creating Threads: Threads in Java can be created by extending the Thread class or implementing the Runnable interface. The run() method is overridden to define the task to be performed by the thread.b. Thread Synchronization: Synchronization is used to control the access of multiple threads to shared resources. Java provides the synchronized keyword, locks, and semaphores to achieve thread synchronization.c. Thread Communication: Communication between threads can be achieved using methods such as wait(), notify(), and notifyAll(). These methods are used to implement the producer-consumer problem and other synchronization scenarios.3. Collection FrameworkThe Java Collection Framework is a set of interfaces and classes that provide essential data structures and algorithms for storing and manipulating groups of objects. It includes the List, Set, Map, Queue, and Deque interfaces, along with their respective implementations.a. List: Lists in Java maintain the order of elements and allow duplicate elements. The key classes implementing the List interface are ArrayList, LinkedList, and Vector.b. Set: Sets in Java do not allow duplicate elements and do not maintain any specific order. The key classes implementing the Set interface are HashSet, LinkedHashSet, and TreeSet.c. Map: Maps in Java store key-value pairs and do not allow duplicate keys. The key classes implementing the Map interface are HashMap, LinkedHashMap, and TreeMap.d. Queue and Deque: Queues in Java follow the FIFO (First-In-First-Out) order, while Deques (Double-Ended Queues) support operations at both ends. The key classes implementing these interfaces are PriorityQueue and ArrayDeque.4. Input/Output (I/O)Java I/O is used for reading and writing data from and to external sources such as files, streams, and consoles. It provides classes and methods for performing various I/O operations, such as reading from a file, writing to a file, and handling character and byte streams.a. File I/O: File I/O in Java is performed using classes such as File, FileInputStream, FileOutputStream, FileReader, FileWriter, and RandomAccessFile. These classes enable operations such as reading and writing files, creating directories, and checking file attributes.b. Stream I/O: Stream I/O in Java is based on the concept of reading and writing data in a sequential manner. There are two types of streams: byte streams (InputStream and OutputStream) and character streams (Reader and Writer).c. Serialization: Serialization is the process of converting an object into a byte stream for transmission or storage. Deserialization is the reverse process of reconstructing the object from its byte stream. Java provides the Serializable interface and the ObjectOutputStream and ObjectInputStream classes for serialization and deserialization.5. Exception HandlingException handling in Java is a mechanism for handling runtime errors and abnormal conditions that may arise during the execution of a program. It provides a structured way to deal with unexpected situations and maintain the robustness of the application.a. Checked Exceptions: Checked exceptions are the exceptions that are checked at compile time. They are typically handled using try-catch blocks or by declaring them in the throws clause of a method.b. Unchecked Exceptions: Unchecked exceptions, also known as runtime exceptions, are not checked at compile time and can occur at runtime. They are typically caused by programming errors and should be handled using try-catch blocks.c. Custom Exceptions: Java allows developers to define custom exceptions by extending the Exception class or one of its subclasses. This allows for more specific and meaningful error handling within the application.6. GenericsGenerics in Java enable the creation of parameterized types, allowing classes, interfaces, and methods to operate on objects of various types while providing compile-time type safety. They prevent type mismatches and class cast exceptions at runtime and promote code reuse and robustness.a. Generic Classes: Generic classes are defined using a type parameter enclosed in angle brackets. This type parameter represents the type of objects that the class can operate on.b. Generic Methods: Generic methods are methods that can operate on objects of different types. They are defined using a type parameter before the return type of the method.c. Bounded Type Parameters: Bounded type parameters in generics restrict the types that can be used as arguments to a generic class or method. They are used to specify upper and lower bounds for the type parameter.7. Java 8 FeaturesJava 8 introduced several new features and enhancements to the language, including lambda expressions, functional interfaces, the Stream API, and the new date and time API.a. Lambda Expressions: Lambda expressions provide a concise way to represent anonymous functions. They are used for implementing functional interfaces and enable functional programming in Java.b. Functional Interfaces: Functional interfaces are interfaces that contain exactly one abstract method. They are used in conjunction with lambda expressions to enable the use of functional programming constructs in Java.c. Stream API: The Stream API provides a declarative way to process collections of objects. It allows for filtering, mapping, reducing, and iterating over collections in a functional style.d. Date and Time API: Java 8 introduced a new date and time API in the java.time package, which provides classes for handling dates, times, durations, and periods in a more flexible and comprehensive manner.8. AnnotationsAnnotations in Java are a form of metadata that can be added to code elements such as classes, methods, and fields to provide additional information about the code. They are widely used for marking code for special processing or adding information for tools and libraries.a. Built-in Annotations: Java provides several built-in annotations, such as @Override,@Deprecated, and @SuppressWarnings, which are used for indicating method overriding, deprecation, and suppression of warnings, respectively.b. Custom Annotations: Java also allows developers to create custom annotations for their specific requirements. Custom annotations are defined using the @interface keyword and can contain elements and values.c. Annotation Processors: Annotation processors are tools that read and process annotations during compilation. They are used for generating code, validating code, and performing various other tasks based on the presence of annotations.In conclusion, core Java is a fundamental programming language that forms the basis for building robust and scalable applications. Understanding the core Java concepts such as object-oriented programming, multithreading, collections, I/O, and annotations is essential for any Java developer. Mastering these concepts will enable developers to write efficient, maintainable, and high-quality code for a wide range of applications and systems. As Java continues to evolve with new features and enhancements, staying updated with the latest developments in the language is crucial for Java developers to stay competitive in the industry.。
第二章、JAVA编程基础一、JAVA的基本语法(1)JAVA代码的落脚点Java中所有程序代码都必须在一个类中,用class关键字定义类,class前面可以有一些修饰符号。
格式:[修饰符] class 类名{程序代码}例:public class MyTest{程序代码}注:当修饰符号为public关键字时,文件名必须与类名相同。
而且只能有一个类用public关键字修饰。
(2)JAVA严格区分大小写JAVA语言是严格区分大小写的。
例:定义一个类用“class 类名”,而不能写成“Class 类名”。
String name,Name;//其中name与Name是不同的变量。
(3)JAVA代码是一种自由格式的语言Java中所有程序代码分为结构定义语句和功能执行语句,一条语句可以写在若干行上,功能执行语句必须用分号(;)结束,不必要对齐或缩进一致.例:public class HelloWorld{ public static void main(String args[]){System.out.println(“Hello world”);}}和public class HelloWorld{public static void main(String args[]){System.out.println(“Hello world”);}}他们是一样的。
(4)JAVA程序的注释注释:不被程序编译的文字信息,增强源文件的可读性。
单行注释:// 注释内容多行注释:/* 注释内容 */文档注释:/** 注释内容 */文档注释的内容会被解释成程序的正式文档。
(5)JAVA中的标识符程序员对程序中的各个元素加以命名时使用的命名记号称为标识符包括:类名、变量名、常量名、方法名、…。
标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。
Java标识符大小写敏感(区分大小写),没有长度限制,可以为标识符取任意长度的名字,但不能是java中的关键字(保留字)。
tarena 2013年一、常用基础类@数组1.三种排序法:a)选择:每轮排序后最小者置于该轮首位(j=i+1)b)冒泡:每轮排序后最大者置于该轮末位(length-1轮)c)插入:第i轮排序前i+1个元素第一轮排序前2个元素(j=i-1)2.数组创建:int[] a = new int[100];3.Arrays是工具类,即所有方法都是静态的,直接用类名调用。
4.Arrays API:.length属性Arrays.toString(ary)Arrays.copyOf(ary, newLength)Array.copyOfRange(ary, from, to)void Arrays.fill(ary, obj)void Arrays.sort(arr)5.数组无论是传递引用,还是采用clone方法,均是深拷贝。
?6.控制台输入数组:while(true)与if break7.二维数组:允许每一行的元素个数不同。
deepToString(aa)@字符串<正则表达式>1.如何理解Java字符串的不可变性?String类里没有提供任何方法修改String对象,故称之为不可变类。
当然,可以修改字符串变量的引用。
2.基本数据类型(除逻辑型)可与String拼接“+”3.String API:new String(char[])String.valueOf(Object)//各种对象,字符串length()charAt(index)toCharArray()startsWith(str), endsWith(str)equals(str), equalsIgnoreCase(str)indexOf(str/char), indexOf(str, int), lastIndexOf当有重复字符时有别replace(str/char, newStr/char),replaceAll(“[日月]”, “-”)substring(from), substring(from, to) [from, to-1]下同toUpperCase(), toLowerCase()trim()comparaTo(str)//实际输出探究下,不是简单的-1.0.-1规则4.S tringBuilder可变,java5以后提供,速度快,非线程安全,推荐用它。
Core Java第一章:进入Java世界第一章:进入世界程序语言发展历程机器语言:二进制机器代码,不便理解,不好记忆,机器语�言:二进制机器代码,不便理解,不好记忆,与硬件平台相关,不具有可移植性。
�件平台相关,不具有可移植性。
汇编语言:用助记符号来描述,与机器代码一一对应�,汇编语言:用助记符号来描述,与机器代码一一对应,能够理解,但同样不可移�植。
够理解,但同样不可移植。
高级语言:按自然语言的语法风格书写程序,方便�理解,高级语言:按自然语言的语法风格书写程序,方便理解,在原代码的层次上�可以实现跨平台移植。
在原代码的层次上可以实现跨平台移植。
我们熟知的常用计算机语言C C++ Pascal Basic Java ……Java来自来自Sun 来自Sun : Standford University Network Sun公司官方网�站Java创始人创始人James Gosling green的项目组具有深厚的c++背景。
任务是为小型消费型电子产品开发一种通用的编程语言。
�如机顶盒。
OakJava简史简史Java 应用概述J2ME (Java 2 Micro Edition) J2SE (Java 2 Standard Editi�on) J2EE (Java 2 Enterprise Edition) 微型版标准版企业版Java 应用概述Java ME (Java Micro Edition) 微型版Java SE (Java Stand�ard Edition) 标准版Java EE (Java Enterprise Edition) 企业版编译型和解释型编译型语言:编译型和解释型解释型语言Java的工作方式的工作方式Java的目标是让你写出一个应用程序,并能在任何�设备上运行Java的工作方式的工作方式编译器编译源代码,同时检查错误字节码文件由编译器产生,任何支持Java的设备都能够把它转译成可执行的内容,编译后�的字节码与平台无关Java虚拟机你不会真的买一台Java的机器,但是你都会有一个虚拟机,这个虚拟机由软件�实现,它可以读取与执行字节码文件。
你要做的事编写源代码、编译、执行JDK、JRE、JVM 、、JDKJava Development Kit (java 开发工具包) 工具箱1.2-1.4版本也称为SDKSoftware Development Kit JREJava Runtime Environment (java 运行环境)JVM Java VirtualMachine(java 虚拟机)JDK、JRE、JVM 、、JDK:(Java Development kit) 包含Java运行的基本类库�和开发命令,安装JDK可以进行完整的Java开发。
JRE:(Java Runtime Environmen�page 1t) 包含Java运行的基本类库和一些运行命令,安装JRE可以运行编译好的Java程序�。
JVM:(Java Virtual Machine) Java语言内部运行的核心。
JDKJREJVM下载并安装JDK 下载并安装从以下网站可下载JDK 从以下网站可下载 根据开发机器�的不同,请下载相应平台下的根据开发机器的不同,请下载相应平台下的JDK Install JDK Windows: run the executable Unix: run the shell配置Java环境变量环境变量配置JA V A_HOME CLASSPA TH PATH配置Java环境变量环境变量配置Windows 2000/NT/XP 开始—控制面板系统—高级控制面板—系统高级—环境�变量开始控制面板系统高级环境变量JA V A_HOME=… PA TH=%JA V A_HOM%\bin CLA�SSPATH=.;… Unix csh: add these lines to $HOME/.cshrc setenv JA V A_HOME /us�r/java…… setenv PA TH $JA V A_HOME/bin:…… setenv CLASSPATH . bsh/ksh: add�these lines to $HOME/.profile JA V A_HOME=/usr/java PATH=$JA V A_HOME/bin:$PA�TH CLASSPATH=. export JA V A_HOME PATH CLASSPATHJava的程序结构的程序结构类存在于源文件中方法存在于类中语句存在于方�法中Source file class method1method2源文件和类源文件()带有类的定义。
类用来表示程序的一个组件,小程序或�许只会有一个类,类的内容必须包括在花括号里面。
public class Dog{}类类和方法类中带有一个或多个方法在Dog这个类中,bark 方法带有如何“汪�汪”的指令。
方法必须在类的内部定义public class Dog{ void bark(){} }方法方法和语句在方法的花括号中编写方法应该执行的指令。
方法代码由一组语�句组成。
public class Dog{ void bark(){ statement1; statement2;} }语句Main方法方法当JVM启动时,它会寻找你在命令行所指定的类,然后它会锁定�像下面这样的一个特定方法:public static void main(String[]args){//程序代码}然后JVM就会执行这个方法中的所有代码剖析类是的,你不需要记住这些是的,练习:Information.java 写一个Java程序打印出下列信息:姓名性别年龄毕业学校户籍第二章:Java基本语法第二章:基本语法你在main()方法里能做什么?方法里能做什么?你在方法里能做什么做某件�事声明、设定、调用方法在适当的条件下做某件事If/else switchpage 2 反复做某件事for while认识变量变量有两种:基本类型引用类型Java注重类型注重类型声明变量的规则变量必须有一个类型变量必须有一个名字int count;类型名称变量类型的不同变量=杯子Java的基本数据类型的基本数据类型byte short int long float double ch�ar boolean 8-bit 整形值16-bit 整形值32-bit 整形值64-bit 整形值32-bit 浮�点数值64-bit 浮点数值16-bit unicode编码的字符编码的字符布尔值(布尔值�(true 或false))整形数据(整形数据(byte、short、int、long)、、、)三种形式给一个整形变量直接赋值: 三种形式给一个整形变量直接赋值十进制�、十进制、八进制和十六进制直接给出的值默认是int类型。
直接给出的值默认是�类型。
类型标示。
长整形值应该在数字后面跟上‘l’或‘L’标示。
标示public void testIntType() { int ia = 0x55; //十六进制十六进制int ib�= 011; //八进制八进制byte bb = 0x771; byte ba = (byte)0x771; long la = �1234567L; //十进制十进制}整形数据在计算机内的存储方式1,正整数,存储该数字的二进制原码。
2,负整数,存储该数字的二进制补码�。
short a=57; int a=57; 0000 0000 short a=-57; int a=-57; 1111 1111 高字节�位1111 1111 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0011 1001 0�011 1001 1100 0111 1100 0111 低字节位浮点数据类型—float 和double 浮点数据类型类型。
直接在程序中书写的浮点数默认为dobule类型。
类型float 类型的数�据占位长度(4 Bytes)类型的数据占32位长度位长度()double类型的数据占�位长度(8 Bytes)类型的数据占64位长度类型的数据占位长度()直接表示一�个float 类型的值必须在数字后跟…f‟ 或‘F‟ 直接表示一个直接表示一个doub�le 类型的值可以在数字后跟‘d‟ 或‘D‟ 类型的值可以在数字后跟‘直接表示一�个可以用科学计数法表示,可以用科学计数法表示,如:123.456e3或123.456E3 或�public void testFloatType() { float fa = 123.4f; float fb = 12.5E300F; fl�oat fc = (float)12.5E300; double da = 123D; double db = 123.456D; double d�c = 123.45e301; }字符类型char 字符类型1,其实就是一个无符号的16位整形,其范围为0~65535,用来存储该字符的�Unicode编码值,因为Unicode 编码中包含汉字的编码,所以一个char类型的变量也�可以存储一个汉字字符。
2,在代码中直接给出的一个字符值必须用单引号括起来。
�char zhChar = …中’;char enChar = …a‟; char ucChar = …\u0060‟; 3,�对某些不方便直接书写或直接书写有歧义的字符,java语言规定用转义字符给出。
�4,可以把char类型数据当作整数数据来操作。
转义字符Java语言中转义字符都以‘\‟给出常用转义字符列表:转义字符\ddd \uxx�xx \‟ \‟‟ \\ \r \n \f \t \b 描述1到3位8进制数所表示的字符(ddd) 1到4位1�6进制数所表示的字符(xxxx) 单引号字符双引号字符反斜杠字符回车换行走纸换�页横向跳格退格字符串类型String 字符串类型String 1,是JDK中定义的一个类,不是基本数据类型中定义的一个类,,中�定义的一个类2,一个对象可以用来存储多个字符,,一个String对象可以用来存�储多个字符,在程序中直对象可以用来存储多个字符接给出一个String值要用双引�号括起来接给出一个值要用双引号括起来String myName = “Ice Xu”; 3,可以�page 3使用+ 运算符把多个运算符把多个String数据连接起来,并且数据连接起来,,�数据连接起来还可连接其他类型的数据例如:例如:int count=7; System.out�.println("Counted " + count + " chars." );布尔类型-boolean 布尔类型一个boolean类型的变量用来表示一个或真或假的关系类型的变量用来表示一个�或真或假的关系一个类型变量的值必须是true 或false二者之一一个boolean 类�型变量的值必须是boolean isCorrect = true;基本数据类型的取值范围Type boolean byte short char int long float double Bits 8 8 16 16 32 �64 32 64 Bytes 1 1 2 2 4 8 4 8 Minimum Range Maximum RangeOnly two values :true or false -27 -215 0 -231 -263 Not needed Not ne�eded 27 - 1 215 - 1 216-1 231 - 1 263 - 1 Not needed Not needed变量赋值public class Assign { public static void main(String args[]) { int x,�y; // 声明类型变量和y 声明int类型变量类型变量x和float z = 3.414f; // �声明声明float类型变量并赋值类型变量并赋值double w = 3.1415; //声明声明�double类型变量并赋值声明类型变量并赋值boolean truth = true; //声明声明�boolean类型变量并赋值声明类型变量并赋值char c; //声明声明char类型变量�类型变量c 声明类型变量String str; //声明声明String类型的引用声明类型的�引用String str1 = “bye”; //声明声明String类型的引用并且实例化声明类型�的引用并且实例化 c = …A‟; // 给c变量赋值变量赋值str = “Hi out there!”�; // 给str实例化实例化x = 6; y = 1000; } }变量赋值要确保变量能存下所保存的值你无法用小杯子装大值不可以吗?类型转换自动类型转换(隐含转换自动类型转换隐含转换) 隐含转换强制类型转换(显�式转换强制类型转换显式转换) 显式转换基本数据类型转换序列说明:说明:在本图中,顺着箭头方向的类型转换可以自动进行,1,在本图�中,顺着箭头方向的类型转换可以自动进行,逆箭头方向的转换或无箭头类型之间的�转换必须强制转换。