Java基础(二)

2. Java基础面试题目(二) 核心方法 | add(), remove(), iterator() | sort(), shuffle(), synchronizedXXX() || 实现类 | List/Set/Queue | 无实现类,操作集合的实用方法 |:final修饰引用类型时,对象内容仍可修改,只是引用不可变。提供集合操作静态方法 |:设置误差阈值或使用BigDecimal。:IEEE754浮点数精度损失。 阅读详情

什么是java

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。


背景

Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。


体系

java分三个体系
1. JavaSE (Java 2 Platform, Standard Edition)
2. JavaEE (Java 2 Platform, Enterprise Edition)
3. JavaME (Java 2 Platform, Micro Edition)


特点

  • 简单性
    • Java容易学习,相对于C++而言更加纯净。
    • 小,基本的解释器以及类支持仅有40k.
  • 面向对象的语言(OO)
    • 封装
    • 继承
    • 多肽
    • 方法重载
    • 方法覆盖
  • 一种与平台无关的语言
    • 解释性语言,一次编译,到处运行(JVM)
    • JVM工作原理
  • 健壮性和安全性
    • 删除了指针和释放内存等C++功能,避免了非法内存操作。
    • 通过Java的安全体系架构来确保Java代码的安全性。
  • 多线程
    • 多线程应用程序能够同时运行多项任务。
    • Java中实现多线程相对于其他语言具有独特的优势。
  • 垃圾回收
    • 垃圾收集机制(Garbage collection)
      • 什么是垃圾?
        无任何引用的对象占据的内存空间
        C/C++是由程序员负责回收无用内存,
        java中程序员无法控制和干预,只能由系统决定什么时候回收垃圾

关键字

关键字描述
abstract抽象方法,抽象类的修饰符
assert断言条件是否满足
continue不执行循环体剩余部分
defaultswitch语句中的默认分支
do-while循环语句,循环体至少会执行一次
double64-bit双精度浮点数
elseif条件不成立时执行的分支
enum枚举类型
extends表示一个类是另一个类的子类
final表示定义常量
finally无论有没有异常发生都执行代码
float32-bit单精度浮点数
forfor循环语句
goto用于流程控制
if条件语句
implements表示一个类实现了接口
import导入类
implements测试一个对象是否是某个类的实例
int32位整型数
interface接口,一种抽象的类型,仅有方法和常量的定义
long64位整型数
native表示方法用非java代码实现
new分配新的类实例
package一系列相关类组成一个包
private表示私有字段,或者方法等,只能从类内部访问
protected表示保护类型字段
public表示共有属性或者方法
return方法返回值
short16位数字
static表示在类级别定义,所有实例共享的
strictfp浮点数比较使用严格的规则
super表示基类
switch选择语句
whilewhile循环
volatile标记字段可能会被多个线程同时访问,而不做同步
void标记方法不返回任何值
try表示代码块要做异常处理
transient修饰不要序列化的字段
throw抛出异常
this调用当前实例或者调用另一个构造函数
synchronized表示同一时间只能由一个线程访问的代码块

JDK和JRE

  • JDK叫做java开发工具集。包括java的编译环境、运行环境、调试环境,以及基础类库。
  • JRE叫做java运行环境。包括虚拟机、核心类库,以及链接文件。
    JDK包含JRE

数据类型、变量、常量

数据类型

  • 数据类型是一种易于人类阅读的标记,用来表示计算机内存的特定用法。
  • 在程序中使用时,数据类型规定所使用内存的大小以及在该内存中可存放的有效值。
  • Java是一种强类型编程语言,这意味着在Java程序中用到的所有变量都必须有明确定义的数据类型

基本数据类型

这里写图片描述

数值型
类型A占用存储空间范围
byte1字节(8位) −27 到 27−1
short2字节(16位) −2的15次方 到 2的15次方−1
int4字节(32位) −2的31次方 到 2的31次方−1
long8字节(64位) −2的63次方 到 2的63次方−1
float4字节(32位) −2的31次方 到 2的31次方−1
double8字节(64位) −2的63次方 到 2的63次方−1

字符型
  • char型数据用来表示通常意义上“字符”。
  • 字符常量为用单引号括起来的单个字符。
  • Java字符采用Unicode编码,每个字符占两个字节。
    • ‘A’的编码是:65 依次类推
    • ‘a’的编码是:97 依次类推
  • Java语言中还允许使用转义符‘\’来将其后的字符转变为其它的含义。例如’\n’,’\t’。
boolean
  • boolean类型适于逻辑运算,一般用于程序流程控制。
  • boolean类型数据只允许取值true或false,不可以0或非0的整数替代false和true ,这点和C语言不同。
    • 用法举例:
      boolean flag = true;
      flag = 5 > 3;
声明和创建变量
  • Java变量是程序中最基本的存储单元,其要素包括数据类型,变量名和变量值。
  • Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:
    数据类型 变量名,变量值;
  • 变量其实是内存中的一小块区域,使用变量名来访问这块区域。
变量的初始化
  • 声明变量后,应该对变量进行初始化(养成习惯)
  • 初始化的语法:
    数据类型 变量名 = 初始值;
    • 比如:
      int i = 0;
      等同于:
      int i;
      i = 0;
变量的内存组织方式

这里写图片描述

常量
  • Java的常量值用字符串表示,区分为不同的数据类型。

    • 如整型常量123
    • 实型常量3.14
    • 字符常量’a’
    • 逻辑常量true、false
    • 字符串常量”helloworld”
  • 注意:区分字符常量和字符串常量。

  • Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F。

  • 我们也可以给常量命一个标示符名

  • 语法如下:

    • final 数据类型 标示符 = 常量值;
  • 符号常量声明的时候必须赋值

  • 在整个程序中不能改变不能重新赋值
为什么使用常量
  • 使用符号常量的好处是:
    • 含义清楚。如上面的程序中,看程序时从PRICE就可知道它代表价格。
    • 在需要改变一个常量时能做到“一改全改”。例如在程序中多处用到某物品的价格,如果价格用常数表示,则在价格调整时,就需要在程序中作作出修改,若用符号常量PRICE代表价格,只需改动一处即可。
标识符
  • Java标识符命名规则:
    • 标识符由字母、下划线“_”、美元符“$”或数字组成。
    • 标识符应以字母、下划线、美元符开头。
    • Java标识符大小写敏感,长度无限制。
    • “见名知意” 。
    • 约定俗成的规则

java环境变量配置

什么是环境变量

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

可以在用户变量和系统环境变量设置

区别: 用户变量只能是当前登录的用户才有效果
系统变量是你电脑上的全部用户都可以使用

第一步:设置JAVA_HOME变量
JAVA_HOME的值是你安装java的目录路径
比如我的java安装路径 D:\java\jdk1.8.0_45
设置:
变量名:JAVA_HONE
值:D:\java\jdk1.8.0_45
第二步:设置classpath变量
设置
变量名:classpath
值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tooles.jar
注意:一定要在最前面加上 .; 表示在当前路径下查找

第三步:设置Path变量 (环境变量有Path变量,只需要在后面添加值即可)
设置:
变量名:Path
值: ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(添加到最后面,注意分号)

dt.jar和tools.jar是两个java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的。
而path下面的bin里面都是java的可执行的编译器及其工具,如java,javadoc等,你在任意的文件夹下面运行cmd键入javac,系统就能自动召见java的编译器就是归功于这个环境变量的设置

rt.jar是JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库


把javac和java命令添加到鼠标右键运行

最常用的方法就是在java文件上右键打开方式选javac.exe打开这个java文件,如果没有语法错误,会生成一个XXX.class文件
但是有两个问题:

  • 当这个java文件有错误的时候,右键用jacac.exe打开会出现cmd窗口,但是它会马上关闭,可以说是一闪而过,我们看不到错误信息。
  • 如果我们编译通过了,然后还要右键那个class文件,然后用java.exe打开,这样很麻烦。

所以我推荐下面这种方法
不是简单的用java和javac命令打开
这样我们就不用每次都进入cmd然后进去到java文件所在路径,然后在输入javac xxx.java 编译 和java xxx运行了
直接鼠标右键 单击 编译并运行 就可以直接编译并且输出结果。如果有错误,也会显示完整错误信息,不会一闪而过。

  • 新建runJava.txt,改后缀为bat,用记事本打开,复制以下代码到这个文件中 然后保存并把这个文件放在一个不经常动的地方
    我放在了F盘的java文件夹下
@ECHO OFF 
cd %~dp1                    %转到当前目录下%
IF EXIST %~n1.class (      %如果有xxx.class 则执行 删除命令,将原来旧的class文件 %
    DEL %~n1.class 
)
ECHO Compiling %~nx1        %在控制台显示 Compiling xxx.java%
javac -d . %~nx1            %执行javac命令 -d  参数的意思是 指定放置生成的类文件的位置  . 的意思是放在当前目录下 %
@ECHO OFF           
IF EXIST %~n1.class (       %如果存在xxx.class 说明编译成功 则执行java命令 %
ECHO ---------Out----------         
java %~n1  %执行java命令%      
)
pause
  • 添加到鼠标右键:新建java.txt文件,改后缀为reg,用记事本打开 复制以下代码到文件中
    说明:@=”\”F:\Java\runJava.bat\” \”%1\”” 这一行需要改成第一步中runJava.bat所在文件夹目录
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\java]
@="编译并运行"
[HKEY_CLASSES_ROOT\*\shell\java\Command]
@="\"F:\\Java\\runJava.bat\" \"%1\""

然后双击这个文件,将这个键值添加到注册表中。
注意:这里涉及到改注册表,有风险,如果信得过我,只管点就是,我就是这个做的。

可以进入我的百度贴吧查看详情

百度百科

Java基础面试题系列二 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java获取反射的三种方法通过new对象实现反射机制 2.通过路径实现反射机制 3.通过类名实现反射机制Class.forName(String className)、className.class、实例对象.getClass()。 阅读详情

相关推荐

【漏洞修复】Diffie-Hellman Key Agreement Protocol 资源管理错误漏洞(CVE-2002-20001)

Diffie-Hellman Key Agreement Protocol 存在安全漏洞,远程攻击者可以发送实际上不是公钥的任意数字,并触发服务器端DHE模幂计算。

我的博客 1万+

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言

  C语言   C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为盛大娛樂場应用程序设计语言...

5687

3D Slicer的学习(二) 图像的分割

先对不同层级标注,然后点击Fill between slices -> Initialize -> Apply拖动层级颜色区域就会变成连续自适应的动态变化区域。如图,点击Level tracing,在图像上放置鼠标,会显示可能想要选中区域的轮廓,点击鼠标右键会将其显示为蓝色。然后点击Grow from seeds -> Initialize -> Apply,显示3D之后会自动扩展到其他位置的相同部位,从而展示整个部位。如图为copy之后,将黄色区域的颜色复制到原本的绿色区域。

tuweibazong的博客 6082

java的environment_Java - 环境设置(Environment Setup)

Java - 环境设置(Environment Setup)在本章中,我们将讨论为Java建立适宜环境的不同方面。本地环境设置 (Local Environment Setup)如果您仍然愿意为Java编程语言设置环境,那么本节将指导您如何在计算机上下载和设置Java。 以下是设置环境的步骤。Java SE可从链接Download Java免费获得。 您可以根据您的操作系统下载版本。按照说明...

weixin_39908758的博客 1453

1panel面板实战:Docker容器存储路径迁移与优化指南

本文详细介绍了在1panel面板中迁移Docker容器存储路径的完整流程与优化方法。针对系统盘空间不足的常见问题,通过停服务、搬数据、改配置三个核心步骤,指导用户安全地将Docker数据目录迁移至更大容量的独立分区,并提供了迁移后的深度管理技巧与常见避坑指南,帮助用户优化服务器存储资源。

ol789012的博客 866

从理论到代码:手把手教你用Matlab复现MMC的HSS阻抗模型(附避坑指南)

本文详细介绍了如何使用Matlab复现MMC的HSS阻抗模型,涵盖谐波状态空间(HSS)理论、代码实现步骤及常见问题解决方案。通过谐波线性化和序阻抗建模技术,帮助工程师准确分析MMC的阻抗特性,并提供避坑指南以解决矩阵维度错误、收敛性问题和频域转换陷阱等难点。

weixin_42561040的博客 357

Java编程快速有效的学习方法有哪些?

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。java编程学习方法有哪些呢?...

java03_15的博客 1017

ctftools-all-in-one使用说明

OAEP (Optimal Asymmetric Encryption Padding) 是一种用于RSA加密的填充方案,目的是提高RSA加密的安全性。在CTF比赛中,如果模数N的两个因子比较接近,使用"费马分解(N)"可能会更快地得到结果;OAEP 是 RSA 的一种标准填充方式(在 PKCS#1 v2.0+ 中定义),因此这类题目本质上仍是 RSA 题,但。,导致你不能直接用常规的 RSA 解密公式 �=�� mod �m=cdmodN 得到有意义的明文。如果你在 CTF 中遇到 RSA 题,

2501_91682449的博客 1716

java基础之JDBC二:原生代码基础应用

java基础之JDBC二:原生代码基础应用 JDBC的基础应用CURD: 增删改 public void noQuery() { Connection conn = null; Statement stat = null; try { //注册驱动 Class.forName...

这里将承载一段最初的记忆 163

PVE 8.0 保姆级换源教程:从Debian到LXC仓库,一次搞定国内镜像(附弹窗去除)

本文提供PVE 8.0保姆级换源教程,涵盖从Debian基础源到LXC仓库的国内镜像配置,并附赠去除订阅弹窗的实用技巧。通过详细步骤和命令示例,帮助用户快速优化ProxmoxVE环境,提升下载速度并消除干扰提示,适用于虚拟化平台的高效管理。

weixin_33282146的博客 413

最全的Hermes安装教程以及Hermes WebUI安装部署和配置指南

* 直接执行命令**

小石头的专栏 1074

二刷Java基础

Java基础详解,细致到小的知识点,持续更新中...

m0_58291117的博客 1361

[Dify实战] 用 Dify 打造高效的新员工 7 天成长计划-带绑定资源

本文介绍了如何利用Dify平台为新员工制定智能成长计划,解决融入难、节奏乱、成长慢等问题。方案通过输入岗位信息自动生成7天结构化计划,包含每日任务和评估要点,并支持进度跟踪与报告输出。关键点在于设计清晰的Prompt模板,合理分配学习节奏,形成闭环反馈机制。该方案能显著提升新员工培养效率,实现人才培养的数字化升级。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 569

Java基础二

java基础

qq_63523782的博客 193

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java编程基础②

Java编程基础Java中的注释Java中的标识符Java中的关键字Java中的常量常量类型定义常量java中的变量变量的定义及其数据类型变量的类型转换变量的作用域java运算符算术运算符赋值运算符比较运算符逻辑运算符位运算符运算符的优先级java流程控制语句if条件语句switch条件语句while循环语句for循环语句循环嵌套跳转语句(break语句)跳转语句(continue语句)java中的方法方法的定义方法的重载方法的递归java中的数组数组的定义数组的常见操作数组的遍历数组的最值数组的排序多维数

qq_52563919的博客 2445

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

二、JAVA语法基础

JAVA语法基础

Hannaseyes博客世界 3007

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java基础知识二

java基础知识二

qq_44616158的博客 1764

二、Java基础语法

Java基础语法二、Java基础语法1. Java基础语法1.1 注释(理解)1.2 关键字(理解)1.3 常量(应用)1.4 数据类型(记忆、应用)1.4.1 计算机存储单元1.4.2 Java中的数据类型1.5 变量(应用)1.5.1 变量的定义1.5.2 使用变量时的注意事项1.6 标识符(记忆、理解)1.7 类型转换(理解)2. 运算符2.1 算术运算符(理解)2.1.1 运算符和表达式2.1.2 算术运算符2.1.3 字符的“+”操作2.1.4 字符串的“+”操作2.2 赋值运算符(应用)2.3

汪随安的博客 3136

Java基础系列二 Java语言基础

Java基础系列第二章 Java语言基础

1009

Java 基础语法【二】

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。

m0_74825238的博客 679

java基础二

也就是一旦匹配成功,不会在判断下一个case的值,直接向后运行,直到遇到break或者整个switch语句结束,switch语句执行终止。1 if语句的条件是一个布尔类型值 true if条件表达式为true则进入分支,可以用于范围的判断,也可以用于等值的判断,使用范围更广。②当switch(表达式)的值与case后面的所有常量值都不匹配,寻找default分支进入;3.如果是false就继续判断关系表达式2看其结果是true还是false。1.首先判断关系表达式1看其结果是true还是false。

2401_85546762的博客 1031
上一篇: Sublime使用说明
下一篇: Java基础(一)
dong4go
博客等级 码龄12年 5粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值