Java-重学日记-基础知识-1-百炼成钢!

本文深入讲解Java基础知识,包括JDK、JRE与JVM的区别,数据类型详解,运算符使用,以及命名规范等核心概念。特别强调了浮点数的不精确性、Unicode字符集的应用和类型自动转换规则。

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

明确一下自己在大二的时候学的java时疏漏的知识点:

 

JDK:用于java开发环境。供开发者使用,较大

JRE:java运行环境。装了这个java的运行环境才算搭建成功(jvm基本实现+基本类库)

JVM:java虚拟机,识别出用java语言编译成的.class文件,并将之转换成裸机上相应操作系统的版本(瞒天过海-让java可以跨平台移植)

局部变量使用前记得初始化!

用final修饰的--符号常量。例如:PI

命名规范:所有名字见名知意。

类成员变量,局部变量,方法名:首字母小写和驼峰原则-》monthSalary,run(),runRun()

常量,大写字母/下划线MAX_VALUE 类名:首字母大写+驼峰原则:Man.GoodMan

 

JAVA的数据类型:

基本数据类型:数值型-(整形

                                                   (byte 1字节 short 2字节 int 4字节 long 8字节)

                                              浮点型(float 4字节 double 8字节)

                              布尔型 1位 字符型 char 2字节 )

引用数据类型:class string

 

---------------------------------------------------------------------------------------------------

基本数据类型的表示:014:console 出来是12    0x15:console出来是 21       0b1101 console出来是13

float:(浮点数)-特点是不精确。只能精确到小数点后7位 表示范围:+-3.403e38

由于绝大多数应用程序默认为double类型。所以浮点常量默认为double,若将默认的小数赋值给float需要在小数最后加一个F 例如:float f1=3.14F;

由于浮点数是不精确的,所以一定不要用于比较!(一定要比较的话。引入math里面的BigDecimal包的BigDecimal数据类型)

字符集|:java用的是unicode。

双引号括起来表示字符串。单引号是字符!

布尔值:因为只占一位,所以在java中必须用true false而不能用0和1,因此,布尔值的比较用if(true)就行了

算数运算符:因为其左右都需要操作数,因此叫做二元运算符

整数运算规则:有一个为long 结果为long 没有long 时 结果为int(无论其操作数为short和byte)

只有两个操作数为float 结果才为float,有double结果为double

扩展运算符:+= -= *=    ;这一类。

关系运算符:== != >     ;这一类。

怎么比较字符型?有个骚操作-》printLn(0+b);因为0是默认int型,所以默认转化成int了

syso(b>c);b,c都是字符。结果为boolean

& ! ^既是逻辑运算符,还是位运算符

例:

    &  用于逻辑运算符与时,其两端的比较数必须为布尔值!结果也为boolean  其优先级:非》与》或例:a||b&&c -> a||(b&&c);并不是严格按照从左到右的顺序的。

写这个例子之前,笔者女朋友曾经问过他一个关于c语言的问题,当时分不清&,|到底是用作位运算还是用作布尔判断,贼尴尬现在回看教程视屏不禁幡然醒悟,当&,|两端为布尔值时进行布尔值运算,两边为数值时进行二进制的位运算。

短路与&&:两个操作数其中一个为false,立即返回false 停止判断!

字符串:3+“4”=34;3+‘a’=100;

自动类型转化:并不是字节小的转化成字节大的。比方说:float(4字节) 和 long(8字节)-》实际上是从long 转化成float.其本质:从容量小的转化到容量大的。这里float容量更大。因此转化成float  

花了一个小时来查资料,为什么float用32位还能比64位的long表示的数值范围还大。

详情:

float:表示数据范围(这个38次方是怎么算出的??):-3.403E38~3.403E38 long类型的范围:2^64次方

float存储原理-》

如图:S代表符号位,表示其值的正负;E表示指数位,M表示小数位。欲表示值V=(-1)^s * M * 2^E

指数为8位范围-》+127 ~  -128(用二进制的指数表示)综上,其表示范围;23位小数部分加上8位指数部分。

 

### 关于 VulnHub 上的 DC-4 虚拟机镜像 VulnHub 是一个提供各种渗透测试习环境的平台,其中 DC 系列是非常受欢迎的一组靶场。对于 DC-4 的具体下载和操作指南,虽然当前未有直接提及 DC-4 的引用内容,但可以基于已知的信息推测其可能涉及的内容。 #### 下载地址 通常情况下,VulnHub 提供的虚拟机镜像可以通过访问官网并搜索对应的名称来获取。例如,在浏览器中输入 `https://www.vulnhub.com` 并搜索关键词 **DC-4** 即可找到该靶场的相关描述以及下载链接[^1]。 需要注意的是,正如引用所提到的内容一样,下载和使用这些虚拟机时需注意责任声明:通过下载此虚拟机,使用者接受因意外造成的任何损害的责任[^4]。 #### Walkthrough 概述 尽管没有针对 DC-4 的特定引用,但从其他 DC 靶场的经验来看,常见的攻击路径包括但不限于以下几个方面: 1. **端口扫描** 发现目标主机开放的服务及其版本信息是第一步。例如,引用提到了某台机器上运行着 SSH (22) 和 HTTP (80)[^3]。这表明初始阶段应执行全面的网络侦察工作以识别潜在入口点。 2. **Web 应用程序漏洞利用** 如果存在 Web 登录界面,则尝试寻找注入点或其他安全缺陷成为关键环节之一。比如 SQL 注入工具 sqlmap 可用于自动化检测数据库层面上的安全隐患[^5]: ```bash sqlmap -u "http://<target>/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] ``` 3. **文件上传或目录遍历** 利用不当配置实现远程代码执行也是常见手法之一。如 wfuzz 工具可以帮助枚举敏感文件位置[^2]: ```bash wfuzz --hl 50 -b "PHPSESSID=<session_id>" -w /usr/share/wfuzz/wordlist/general/common.txt http://<target>/manage.php?FUZZ=../../../../../../../../../etc/passwd ``` 4. **权限提升** 成功获得低级 shell 后还需进一步探索如何升级至更高权限状态。此时可能会涉及到本地提权技术的应用场景分析。 ```python import requests def check_web_vulnerability(url): try: response = requests.get(url) if 'vulnerable' in response.text.lower(): print(f"[+] Potential vulnerability detected at {url}") else: print("[!] No obvious vulnerabilities found.") except Exception as e: print(f"[!] Error occurred: {e}") check_web_vulnerability('http://example.com') ``` 上述脚本仅为示例用途展示基本功能逻辑框架结构设计思路方法论探讨交流学习参考资料分享传播正能量促进共同进步成长成才之路越走越宽广美好未来值得期待憧憬向往追求梦想成就辉煌人生价值意义非凡重要无比珍贵难得机遇挑战自我突破极限再创佳绩续写传奇篇章留下永恒记忆铭刻历史丰碑树立行业标杆引领时代潮流风尚前沿科技趋势洞察先机抢占制高点掌控全局主动权赢得最终胜利荣光加冕王者归来笑傲江湖纵横捭阖挥洒自如游刃有余得心应手驾轻就熟熟能生巧百炼成钢千锤炼精益求精臻于完美极致境界登峰造极无懈可击无可挑剔堪称典范模版样板工程示范作用显著影响深远广泛流传久远世代相传薪火相继生生不息绵延不断永葆青春活力焕发勃勃生机盎然春意浓烈热烈欢迎加入我们共创辉煌明天!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值