大数据开发

article/2025/10/20 15:20:20

Java基础学习

核心技术点:
Java基础语法
面向对象
API
Eclipse开发工具的使用
集合的底层原理
基本算法
jvm参数
JDK8的部分特性
IO、线程、套接字、反射使用
EasyMall项目开发

Java基础

Java简介,跨平台

1995由SUN公司提供的,互联网首选的语言,是大数据的基本语言。 --简单/安全/完全面向对象/跨平台。
跨平台?基于JVM( JVM:Java虚拟机),针对不同的操作系统开发了不同的虚拟机,将java程序交给虚拟机,虚拟机转化为当前操作系统所能理解的指令。然后操作系统再根据指令执行代码。
JDK、JRE、JVM的关系:
JVM–Java Virtual Machine–java虚拟机,是Java能够跨平台的前提。
JRE–Java Runtime Enviroment–JAVA运行时环境,包含JVM+核心类库。
JDK–Java Development Kit --JAVA开发工具包,开发工具+JRE。

在这里插入图片描述
jdk的发展历程:
Oak --James Gosling
JDK1.0–JDK1.1–JDK1.2(GUI)–JDK1.3–JDK1.5(反射) --JDK1.5(JDK5.0)–JDK1.6(JDK6)–JDK1.7(JDK7.0)–JDK1.8–JDK1.9(几乎不用,停止维护)–JDK10–JDK11

Java技术结构

JAVASE–Standard Edition–标准版
JAVAEE–Enterprise Edition–企业版
JAVAME–Micro Edition–微型版(转型成Android)

JDK的下载和安装,入门程序

官网地址:www.oracle.com
注意:在安装过程中需要指定安装目录–尽量不要使用C盘,安装目录中尽量不要出现空格和中文。
将Java程序翻译成当前操作系统能够读懂的指令。 --编译–编译出来的class文件与类名对应
编译命令:javac 要编译的.java文件
运行命令:java要运行的class文件的名字 --一个class文件对应一个类。
公共类:要求类名和java文件名必须一致。
Demo.java
public class Demo{
public static void main(String[] args){
System.out.println(“Hello World !”);
}
}

javac Demo.java
java Demo
在这里插入图片描述

环境变量配置、包

1、环境变量
环境变量–给当前的环境允许置顶一些参数。
新建一个环境变量:JAVA_HOME,值是jdk的安装路径–D:\java\java1.8
编译另一个环境变量:Path,添加D:\java\java1.8\bin
2、包
用文件夹表示包
package cn.tedu.exer;
public class Demo{
public static void main(String[] args){
System.out.println(“I Love Java”);
}
}
将Demo.java放到D:\java\data\cn\tedu\exer
cd D:\java\data
运行:java cn.tedu.exer.Demo
快速创建目录方法:
D:\java\data>javac -d D:\java\data Demo.java
javac:用于编译的命名。
-d:参数,表示在编译的时候需要将包生成对应的文件夹。
D:\java\data 表示编译之后产生的文件夹的存放位置。
D:\java\data>java cn.tedu.exer.Demo

关键字、标识符

关键字
在Java中有特殊含义的单词 --53个关键字 --2个关键字到目前为止没有使用,也称为保留字:goto,const。
注意:在Java中,所有关键字都是小写的。
标识符
在程序中自定义的名称.例如Demo。
定义规则:可以使用字母(常见语言的基本字符)、数字、_、 ,虽然可以使用 ,虽然可以使用 ,虽然可以使用,但是要尽量减少使用。可以使用中文命名,但是不推荐。不能使用关键字。数字不能开头。严格区分大小写。要做到见名知意。
驼峰命名法
类名/接口名:如果名字由多个字符组成,那么每一个单词的首字母要大写。–HelloWorld Demo
变量名/方法名:如果由多个单词组成,那么第一个单词的首字母小写,其余单子的首字母大写。 --helloWord demo
常量名:无论由几个单词组成,所有字母全部大写,每一个单词之前用 _ 隔开 --HELLO_WORLD DEMO
包名:无论由几个单词组成,所有的字母全部小写,每一个单词之前用 . 隔开。 --cn.tedu.exer
注意:main是标识符。

复习、注释

复习
1、Java的跨平台:JVM是跨平台的前提,针对不同的操作系统,有不同的JVM. --JAVA语言是跨平台的,但是JVM不是。
2、Java的技术结构:JAVASE、JAVAEE、JAVAME
3、入门程序:Java程序必须放在Java文件(后缀名师.java),一个Java文件中,可以存放多个Java类,但是智能有一个公共类(用public修饰的类–要求Java文件名和类名一致)。每一个Java类在编译完成之后都会产生一个class文件(字节码文件)。
4、javac -d 存放位置 要编译的java文件
5、java 包名.类名
6、关键字:在Java中有特殊含义的单词 --53个,2个保留字:goto、const --所有的关键字都是小写。
7、标识符:在Java中自定义的名称 —可以是字母、数字、_、$组成,数字不能开头,不能使用关键字,大小写敏感,见名知意。
注释
用于解释说明的文字。
格式
单行注释 //注释文字
多行注释 /注释文字/
文档注释 /*注释文字/ --文档注释中的内容可以提取出来形成文档。
javadoc Demo.java

计算机常量、进制

字面量
整数常量:所有的整数 6、15、10000
小数常量:所有的小数 3.27、100.9、2.0
字符常量:将一个字母、数字、符号用‘’标识起来 ‘a’、‘9’、‘+’、‘ ’
字符串常量:将一个或多个字符用“”标识起来“abc”、“2”、“”
布尔常量:true和false --逻辑值
空常量:null
进制
计数方式
二进制:0~1,满2进1,1+1=10,11+1=100,在JDK.7之前,程序中不允许定义二进制数字,从JDK1.7开始,允许在程序中定义二进制数字。 --以0b/0B作为开头,0b00011,0B101101
八进制:0~7,满8进1,7+1=10,17+1=20,77+1=100,要求以0作为开头,表示5应该是05
十进制:0~9,满10进1,数字如果没有特殊表示,就默认是十进制。
十六进制:09,af,满16进1,8+1=9,9+1=A,A+1=B,F+1=10,39+1=3A,99+1=9A,9F+1=A0,FF+1=100.要求以0X/0x作为开头 0x5:十六进制的5

进制及转换

十进制转二进制:除以2,然后取余数倒排
将13转换成2进制:13=1101
将27转换为2进制:27=11011
将二进制向十进制转化:从低位次开始,按位次乘以2的位次次幂,然后求和
1101=12(0次幂)+12(1次幂)+12(2次幂)+12(3次幂)=13
100110=38
十进制向其他进制转化:除以对应的进制,然后取余数倒排。
其他进制向十进制转化:从低位次开始,按位次乘以进制的位次次幂,然后求和。
二进制向八进制转化:从低位次开始,每三位二进制划分为一组,产生一个八进制数字,最高位可能不足三位,补0,补齐3位,然后也产生一个八进制数字。 —三变一
在这里插入图片描述
10101110100=02564
八进制向二进制转化:一变三 —每一位八进制都会产生三位二进制数字,不足三位补0
八进制向二进制转化
二进制向十六进制转化:四变一
二进制转十六进制,以0x开头
十六进制向二进制转化:一变四
在这里插入图片描述

小数转二进制:了解即可
在这里插入图片描述
注意:绝大部分小数转化为二进制是表示不精确的,导致计算机在存储小数的时候是不精确的。

变量、基本数据类型

变量
数据类型 变量名 = 数据;
int i = 5;
//变量的声明
int j;
//变量的赋值
j = 6;
//定义同一类型数据
int a,b,c;
double d;
注意:无论是,;都是英文格式。
在这里插入图片描述
扩展:存储单位
在计算机中,是以二进制形式来存储数据,每一位二进制在内存中称之为是一“位”(bit简写为b),8位=1字节(byte,简写为B),1024B=1KB ->MB->GB->TB->PB
100Mb = 12.5MB
3GB=3000MB(按1000算,国际通讯领域惯例)
数据类型
基本数据类型
1、数值型
(1)整数型
a、byte —字节型—1个字节-----128~127在这里插入图片描述
byte b1 = 25; byte b2 = 127;
b、short —短整数—2个字节— -2(15次方)+2(15次方)-1->-3276832767
c、int—整形—4个字节— -2(31次方)~ +2(31次方)-1 —在java中整数默认为int类型。
d、long—长整形—8个字节— -2(63次方)~ +2(63次方)-1—需要在结尾添加l/L作为标识。
(2)浮点型
a、float—单精度–4个字节—大概-10(38次方)~10(38次方)—需要在结尾添加f/F作为标识。
float f = 3.5f;
b、double—双精度—8个字节—大概-10(308次方)~10(308次方)—在Java中小数默认为double类型。
double d = 2.64; double d2 = 5.12D; double d3 = 7.33d; 现在D和d可以省略,所以写与不写都可以。
double d = 4e4;标识410的4次方,标识十进制的科学计数法。
doubel d =0x5p3; 表示16进制的科学计数法 xpy表示x
2的y次方。
2、字符型
(1)char—字符型—2个字节—0~65535
char c = ‘a’; char c2 = ‘4’; char c3 = ‘\u2398’;
扩展:
字符在存储过程中需要按照某种规则转化为数字,这种转化规则称之为编码。记录编码形成的表格形式称之为编码表–码表。
所有的码表必须要兼容西欧码表,意味着无论是那张码表,前256个字符是一样的,而且前256个字符永远只占用1个字节。
ISO-8859-1—西欧码表–一个字节1个字符 ‘a’
gb2312–国标码—gbk—2个字节表示1个字符—2个字节1个字符–收录了绝大部分常见的简体汉字以及一部分的繁体汉字
Unicode编码体系:万国码体系—收录了常见语言的常见字符。utf-8–3个字节1个字符,utf-16—2个字节1个字符
(2)转义字符
制表符 ‘\t’ 回车’\r’ 换行‘\n’ 反斜杠‘\’ 单引号‘'’ 双引号‘"’
3、布尔型
boolean—布尔型—true/false
引用数据类型
数组—[] 类—class 接口—interface

数据类型的转换

自动类型转换/隐式转换
byte b = 5;
int i = b;
其他举例:
int i = 7;
long l = i;

float f = 3.57f;
double d = f;
规律一:小的类型可以自动转化为大的类型
public class TypeChangeDemo{
public static void main(String[] args){
byte b = 5;
int i = b;
System.out.println(i);
}
}

long l = 10;—Java
long类型—如果一个整数在int的范围内,那么在赋值给long类型的时候可以不加L;
int i = 10;
float f = i;
规律二:整数可以自动转化为小数,但是可能产生精度损失。
float f = 500;
规律三:字符可以自动转化为整数
在这里插入图片描述
shor类型和char类型范围没有完全重合也不能完全包含
short s = ‘a’; —可以 —'a’是字面量,是一个确定的值。所以在编译的时候就能确定’a’的值是否在short的取值范围内;如果在这个范围内,就允许转换。
char c = 97; —可以 ----97是字面量,是一个确定的值。所以在编译的时候就能确定97的值是否在char的取值范围内;如果在这个范围内,也允许转化。
char c = ‘a’;
short s = c; —不可以 —c是变量,所以在编译期间只能确定c是一个char类型的值但是不能确定c的具体值;就会在编译期间比对两个类型之间是否能够完全转化,发现char类型不能完全转化为short,所以认为这个值会超过short取值范围的风险,因此不允许转化。
强制类型转换/显示转换
int i = 5;
byte b = (byrte)i;标识将变量i强制转换为byte类型之后再复制给变量b。
注意:大类型可以强转为小类型,但是在转化的时候因为字节的损失,可能导致数据不准确。
在这里插入图片描述
在这里插入图片描述

算数运算符

算数运算符

      • / % ++

在这里插入图片描述
byte/short/char在参与运算的时候会自动提升为int
Java是一门类型严格的语言,所以同一个类型晕眩完成之后结果是同一类型。
小类型和大类型同时运算,结果一定是大类型。
整数/0 ArithmeticException —算数异常
非零小数/0 非零数字/0.0 infinity --无穷大
0/0.0 0.0/0.0 0.0/0 NaN --Not a Number — 非数字
% —取模运算 —取余运算

赋值运算符

除了=以外,其他的符号都是相当于在这个变量的基础上进行运算
int i = 10;
i /= 3; -> i = 3
除了=以外,其余的符号都要求这个变量必须有值

关系运算符

==判断两个值是否相等的 !=判断两个值是否相等的 > < ≥ ≤
运算的结果一点事逻辑值 —true/false
int i = 3,j = 5;
i == j --false
i ≤ j --true

逻辑运算符

&—与And | —或Or !—非 Not ^—亦或 &&—短路与 ||—短路或
针对逻辑值进行运算的。
true&true=true true&false=false false&true=false false&false=false
true&true=true true&false=true false&true=true false&false=false
!true=false !false=true
true^true=false true^false=true false^true=true false^false=false
&&:运算规则和&一致的。如果两边的表达式的结果是false,则后边的表达式就不再运算了,整个结果确定为false
||:运算规则和|一致的。如果前边的表达式的结果是true,则后边的表达式不再计算,而整个结果确定为true
||在&&前边的时候能够吧&&短路掉,但是&&在||前边,不能短路
位运算符
三元运算符


http://chatgpt.dhexx.cn/article/aEMUrTFN.shtml

相关文章

入行大数据,需要学习哪些编程语言?

Java java可以说是大数据最基础的编程语言&#xff0c;据我这些年的经验&#xff0c;我接触的很大一部分的大数据开发都是从JaveWeb开发转岗过来的&#xff08;当然也不是绝对我甚至见过产品转岗大数据开发的&#xff0c;逆了个天&#xff09;。 一是因为大数据的本质无非就是…

大数据需要学什么?(一)语言篇

大概两年前写过同样标题的一篇文章&#xff0c;对于这个问题感兴趣的人不少&#xff0c;后台收到不少同学的提问&#xff0c;所以准备细致地解答一下这些问题&#xff0c;希望能解决掉大家90%的疑问。下次再看到相关的提问我会理直气壮地把这篇文章的链接甩你脸上。但是可能又会…

读懂人工智能、机器学习、深度学习、大数据,自然语言处理……

从机器学习谈起 在本篇文章中&#xff0c;我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习&#xff0c;并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇&#xff0c;从这里开始&#xff0c;必须对机器学习了解才能进一步介绍…

大数据_MySQL之DQL(数据查询语言)

目录 引言 一、MySQL概念、常见指令函数 1. MySQL 1.1.MySQL概念 1.2.MySQL的优点 1.3.MySQL服务的启动和停止 1.4.MySQL服务的登录和退出 1.5.MySqL的常见命令 2. 常见函数&#xff1a; 2.1.函数概念 2.2.常见函数分类&#xff08;单行函数&#xff09; 2.3.常见函…

大数据开发语言Scala(一)——scala入门

累了&#xff0c;基础配置不想写了&#xff0c;直接抄了→Scala的环境搭建 这里需要注意的是&#xff0c;创建新项目时&#xff0c;不要用默认的Class类&#xff0c;用Object&#xff0c;原因看→scala中的object为什么可以直接运行 一、Scala简介 1.1 图解Scala和Java的关系 1…

10个最佳的大数据处理编程语言

在巨大的数据集中进行筛选的最好工具是什么?通过和数据骇客的交流,我们知道了他们用于硬核数据分析最喜欢的语言和工具包。 R语言 在这些语言名单中,如果R语言排第二,那就没其他能排第一。自1997年以来,作为昂贵的统计软件,如Matlab和SAS的免费替代品,它渐渐风靡全球。…

十分钟带汝入门大数据开发语言Scala

大家好&#xff0c;我是百思不得小赵。 创作时间&#xff1a;2022 年 6 月 7 日 博客主页&#xff1a; &#x1f50d;点此进入博客主页 —— 新时代的农民工 &#x1f64a; —— 换一种思维逻辑去看待这个世界 &#x1f440; 今天是加入CSDN的第1193天。觉得有帮助麻烦&#x1…

学习大数据需要什么语言基础

Python易学&#xff0c;人人都可以掌握&#xff0c;如果零基础入门数据开发行业的小伙伴&#xff0c;可以从Python语言入手。 Python语言简单易懂&#xff0c;适合零基础入门&#xff0c;在编程语言排名上升最快&#xff0c;能完成数据挖掘、机器学习、实时计算在内的各种大数…

大数据分析学习哪些编程语言

大数据分析已成为21世纪最受欢迎的技术之一。由于行业对大数据分析家的需求很高&#xff0c;因此需要具有所需技能的人员才能精通该领域。除了数学技能外&#xff0c;还需要编程专业知识。但是&#xff0c;在获得专业知识之前&#xff0c;有抱负的大数据分析家必须能够对工作所…

大数据处理需要用到的编程语言开发语言

你有一个大数据项目&#xff0c;你知道问题领域&#xff08;problem domain&#xff09;&#xff0c;也知道使用什么基础设施&#xff0c;甚至可能已决定使用哪种框架来处理所有这些数据&#xff0c;但是有一个决定迟迟未能做出&#xff1a;我该选择哪种语言&#xff1f;&#…

大数据常用十种开发语言

随着大数据热潮持续延烧&#xff0c;几乎每个产业都有如洪水般倾泻的信息&#xff0c;面对上万笔的顾客浏览纪录、购买行为数据&#xff0c;如果要用 Excel 来进行数据处理真是太不切实际了&#xff0c;Excel 相较于其他统计软件的功能已相去甚远;但如果只会操作统计软件而不会…

大数据开发都需要掌握哪些编程语言

当前正处在大数据时代背景下,大数据技术目前也正处在落地应用的初期,未来大数据的发展空间还是比较大的,所以学习大数据相关技术是个不错的选择。 大数据编程语言的选择要根据具体的工作岗位来进行,目前大数据领域的工作岗位包括大数据平台研发、大数据应用开发、大数据分…

linux卸载自带java JDK,安装配置java jdk环境

一、卸载 openjdk 1、查看 java 版本时&#xff0c;显示已经安装了 openjdk&#xff0c;需要卸载 [rootxxx ~]# java -version openjdk version "1.8.0_292" OpenJDK Runtime Environment (build 1.8.0_292-b10) OpenJDK 64-Bit Server VM (build 25.292-b10, mixe…

Java 线程安全与锁

多线程内存模型 线程私有栈内存 每个线程 私有的内存区域进程公有堆内存 同一个进程 共有的内存区域 为什么会有线程安全问题&#xff1f; 多个线程同时具有对同一资源的操作权限&#xff0c;又发生了同时对该资源进行读取、写入的情况&#xff0c;那么就会出现重复操作的情…

java线程和锁

锁&#xff0c;是计算机系统中非常常见的技术&#xff0c;实现线程对资源的独占&#xff0c;防止对资源的并发读写造成错误&#xff0c;本文通过从线程&#xff0c;线程状态&#xff0c;到java提供的锁基础&#xff0c;基础的复盘一下线程和锁线程 计算机系统中&#xff0c;经…

Java线程里的14种锁

参考资料: 不可不说的Java“锁”事 java多线程的15种锁 以下内容是参考上面两片文章写出的粗略总结, 想要细究可以看上面两位大佬写的文章, 由于是参考着写的, 所以有很多地方相同, 如果有侵权或不妥的地方还请联系删除. 一. 线程是否同步资源? 1. 悲观锁 : 同步 每次拿数…

Java多线程 各种锁(一篇全搞懂)

Java多线程 锁 文章目录 Java多线程 锁1、乐观锁与悲观锁2、公平锁与非公平锁3、可重入锁与不可重入锁4、独享锁与共享锁5、自旋锁 VS 适应性自旋锁6、无锁 、 偏向锁、量级锁 和 重量级锁&#xff08;难点&#xff09; 1、乐观锁与悲观锁 &#xff08;1&#xff09;悲观锁 对…

Java多线程编程(三)——线程锁

卖票案例 同步代码块解决数据安全问题 同步方法解决数据安全问题 同步方法的格式&#xff1a; 同步方法和同步方法块的区别&#xff1a; 同步静态方法 Lock锁 卖票案例 某电影院目前正在上映国产大片&#xff0c;共有30张票&#xff0c;而它有3个窗口卖票&#xff0c;请…

浅析Java 多线程中的锁

前言 随着互联网技术的快速发展&#xff0c;多线程编程已经成为了现今编程领域中必不可少的知识点之一。Java 是一种广泛使用的编程语言&#xff0c;也是一些底层应用程序和高并发应用程序的首选语言。而 Java 提供的多线程编程机制和相关的锁机制&#xff0c;则成为了 Java 开…

【Java多线程进阶】常见的锁策略

前言 众所周知&#xff0c;拳击运动员是要分等级&#xff08;轻量级、重量级等等&#xff09;来参加比赛的&#xff0c;在 Java 多线程中 锁&#xff08;synchronized&#xff09; 也会根据锁的竞争程度来升级为相关“高等级”锁&#xff0c;为了更好的理解 synchronized 加锁机…