当前位置: 首页 > news >正文

java基础1(黑马)

一、初识Java

1.Java背景知识

1)Java是美国SUN公司在1995年推出的一门计算机高级编程语言。

2)Java早期名称为OAK,后来才改为Java。

3)Java之父:詹姆斯·高斯林。

4)2009年,SUN公司被Oracle公司(甲骨文公司)收购。

2.Java的应用

1)桌面应用的开发:各种税务软件,IDEA;

2)服务器系统的开发:应用的后台;3)大数据开发:hadoop

4)游戏开发:我的世界 Minecraft5)移动应用开发:android、医疗设备

6)企业级应用开发:微服务,大型互联网应用。市场非常认同Java开发。

公司内部的办公自动化软件、教学管理的软件、大型互联网的应用开发、京东淘宝。

3.Java的技术体系

技术体系说明
JAVA SE(JAVA STANDARD EDITION)java技术的核心和基础
JAVA EE(JAVA ENTERPRISE EDITION)企业级应用开发的一套解决方案
JAVA ME(JAVA MICRO EDITION)针对移动端设备应用的解决方案

4.搭建Java的开发环境

1)Java的产品叫JDK(Java开发工具包),需要安装JDK才能使用Java

注:JDK有些版本是LTS版(长期支持版),指的是Java会对这些版本负责,有问题会长期支持

目前LTS版有Java8 Java11 Java17

获取JDK 直接到Oracle官网下载

2)cmd常用命令

常用命令作用    
D:切换到某个盘下:D:,C:    
dir查看当前路径下的文件信息
cd进入单级目录:cd itheima
进入多级目录:cd D:\itheima\JavaSE\第一天
回退到上一级目录:cd..
回退到盘符根目录:cd\
cls    清屏 


 

3)JDK组成

JVM(Java Virtual Machine):Java 虚拟机,真正运行程序的地方。

核心类库:Java自己写好的程序,给程序员自己的程序调用的。

JVM和核心类库称为JRE(Java Runtime Environment):Java的运行环境。

JDK(Java Development Kit):Java开发工具。

4)步骤:

    1)javac编译Helloworld.java。

    2) java运行HelloWorld,送到JVM虚拟机中运行。

    3)在JVM中会调用核心类库。

注:Java可跨平台工作,即一次编译、到处可用。因为Sun公司为不同平台提供了JVM虚拟机。程序只要开发一次,想在不同平台上跑,就安装相应平台的虚拟机。

5.集成开发环境

集成开发环境(IDE,Integrated Development Environment)把代码编写、编译、执行等多种功能综合在一起的开发工具,可以进行代码智能提示、错误提示、项目管理等。

常见的IDE工具有:Eclipse、MyEclipse、Intellij IDEA、JBuilder、NetBeans等。

企业中也推荐我们使用Intellij IDEA工具开发程序。

Intellij IDEA 一般简称IDEA,在代码错误提醒,智能代码补全等方面表现得都非常优秀,是进行Java开发时,很多企业首选的开发工具。

IDEA下载安装:
下载链接:https://www.jetbrains.com/idea/

使用IDEA开发第一个java程序详见黑马p11(Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题)_哔哩哔哩_bilibili)

1)总结:使用idea开发java程序的步骤是:

project->module->package->class

project中可以创建多个module

module中可以创建多个package

package中可以创建多个class

注:idea中的java程序是自动编译和自动执行的,不需要我们再手动输入java和javac。

2)IDEA常用快捷键操作

快捷键功能效果
main/psvm、sout、...快速键入相关代码
Ctrl + D复制当前行数据到下一行
Ctrl + Y删除所在行,建议用Ctrl + x
Ctrl+ALT+L格式化代码
ALT+SHIFT+↑  ALT+SHIFT+↓上下移动当前代码
Ctrl+/   Ctrl+Shift+/对代码进行注释

6.注释

1)种类

1.单行注释;      //注释内容

2.多行注释;         /* 注释内容 */

3.文档注释;   /**  注释内容 */      (里面的注释内容可以提取到一个程序说明文档中去)

二、Java入门

1.字面量

:计算机是用来处理数据的,字面量就是告诉程序员,数据在程序中的书写格式。

常用数据:

package cn.chang.literal;
public class LiteralDemo {  public static void main(String[] args) {      // 目标:掌握常见数据在程序中的书写格式// 1. 整数      System.out.println(666);// 2. 小数    System.out.println(99.5);// 3. 字符,有且只能有一个字符      System.out.println('a');    System.out.println('0');    System.out.println('中');    System.out.println(' ');    // 空字符    System.out.println('\n');   // 换行,ln是换行,再\n,就换了两行    System.out.println('\t');   // 代表一个tab// 4. 字符串    System.out.println("我爱你中国");      System.out.println("");    System.out.println(" ");  System.out.println("我");// 5. 布尔值 true false    System.out.println(true);    System.out.println(false);    }}

2.变量

变量的定义格式:

例:

package cn.chang.variable;public class VariableDemo1 {public static void main(String[] args) {// 目标:认识变量、掌握使用变量的好处、变量的特点、应用场景// 1. 定义一个整形变量// 数据类型 变量名 = 数据;// 等号在Java中是赋值的意思,从右往左看int age = 23;System.out.println(age);// 记住一个人的成绩double score = 99.5;System.out.println(score);System.out.println("--------------------");  // 字符串// 2. 使用变量的好处,便于扩展和维护int number = 666;System.out.println(number);System.out.println(number);System.out.println(number);}
}

变量中装的数据是可以被替换的:
 

package cn.chang.variable;
public class VariableDemo1 {  public static void main(String[] args) {    // 目标:认识变量、掌握使用变量的好处、变量的特点、应用场景// 3. 变量的特点:里面装的数据是可以被替换的      int age2 = 18;  System.out.println(age2);      age2 = 19;            // 赋值,从右边往左执行      System.out.println(age2);      age2 = age2 + 1;    System.out.println(age2);  }}

变量使用的注意事项:
1)变量要先被声明才能使用:

2)变量是什么数据类型,就应该用来装什么类型的数据,否则报错;

3)变量从定义开始到}截止范围内有效,且同一个范围内,定义多个变量,他们的名称不能相同;

4)变量定义的时候可以不赋初值,但在使用的时候,变量必须有值,否则报错。

3.关键字和标识符

关键字:Java语言中自己用到的一些词,有特殊作用,我们称之为关键字。如public、class、int、double...

注意:关键字是Java用了的,我们就不能用来作为:类名、变量名、否则会报错。

标识符:就是名字,我们写程序的时候,会写一些名字,如类名、变量名等等都是标识符。

标识符的要求

        1)基本组成:有数字、字母、下划线和美元符等组成。
        2)见名知意。

        3)强制要求:不能以数字开头,不能以关键字作为名字,且是区分大小写的

标识符的建议规范

1)变量名称:满足标识符规范,同时建议使用英文,有意义,首字母小写,满足驼峰模式。如

             int studentNumber = 59;

2)类名称: 满足标识符规范,同时建议全英文,有意义,首字母大写,满足驼峰模式,如:

            HelloWorld, Student

相关文章:

java基础1(黑马)

一、初识Java 1.Java背景知识 1)Java是美国SUN公司在1995年推出的一门计算机高级编程语言。 2)Java早期名称为OAK,后来才改为Java。 3)Java之父:詹姆斯高斯林。 4)2009年,SUN公司被Oracle公…...

ES6 对象扩展:对象简写,对象属性 表达式,扩展运算符 ...,Object.assign,Object.is,用法和应用场景

1. 对象属性简写 1.1 基本语法 // 传统写法 const name John; const age 25; const user {name: name,age: age };// ES6 简写语法 const user {name,age };1.2 实际应用场景 // 1. 函数返回对象 function createUser(name, age, email) {return {name,age,email}; }// …...

2025 持续防范 GitHub 投毒,通过 Sharp4SuoExplorer 分析 Visual Studio 隐藏文件

在2024年底的网络安全事件中,某提权工具被发现植入后门,攻击者利用 .suo 文件作为隐蔽的攻击方式。由于 .suo 文件是 Visual Studio 项目的隐藏配置文件,通常不为安全研究人员所关注,因此为攻击者提供了潜在的攻击渠道。 初步调查…...

PCB走线宽度与过流能力参考

我们PCB走线,线宽与允许通过电流的大小是什么样的?几个因素 1、允许的温升:如果能够允许的铜线升高的温度越高,那么允许通过的电流自然也就越高 2、走线的线宽:线越宽 ,导线横截面积越大,电阻…...

电商项目-分布式事务(四)基于消息队列实现分布式事务

基于消息队列实现分布式事务,实现消息最终一致性 如何基于消息队列实现分布式事务? 通过消息队列实现分布式事务的话,可以保证当前数据的最终一致性。实现思路:将大的分布式事务,进行拆分,拆分成若干个小…...

g++ -> make -> cmake(草稿)

1 Windows上安装mingw 2 构建一个 c 项目 3 g 编译 4 make 编译 5 cmake 编译...

JSON常用的工具方法

前言: 在日常开发中,JSON 数据的处理是常见的需求。无论是数据转换、格式化还是与其他格式的互转,掌握一些常用的工具方法可以大大提高开发效率。本文将介绍一些实用的 JSON 操作方法,帮助你快速上手。 JSON常用的工具方法 1.json字符串转换…...

【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信

Kubernetes中Pod间的通信 本系列文章共3篇: 【Kubernetes Pod间通信-第1篇】在单个子网中使用underlay网络实现Pod到Pod的通信【Kubernetes Pod间通信-第2篇】使用BGP实现Pod到Pod的通信(本文介绍)【Kubernetes Pod间通信-第3篇】Kubernetes中Pod与ClusterIP服务之间的通信…...

[权限提升] Windows 提权 维持 — 系统错误配置提权 - Trusted Service Paths 提权

关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01:Trusted Service Paths 提权原理 Windows 的服务通常都是以 System 权限运行的,所以系统在解析服务的可执行文件路径中的空格的时候也会以 System 权限进行解析&a…...

8. k8s二进制集群之Kubectl部署

创建kubectl证书请求文件生成admin证书文件复制admin证书到指定目录生成kubeconfig配置文件接下来完成kubectl配置文件的角色绑定【扩展】kubectl命令补全操作继续上一篇文章《k8s二进制集群之Kube ApiServer部署》下面介绍一下k8s中的命令行管理工具kubectl。 通过kubectl可以…...

初学 Xvisor 之理解并跑通 Demo

官网:https://www.xhypervisor.org/ quick-start 文档:https://github.com/xvisor/xvisor/blob/master/docs/riscv/riscv64-qemu.txt 零、Xvisor 介绍 下面这部分是 Xvisor 官方的介绍 Xvisor 是一款开源的 Type-1 虚拟机管理程序,旨在提供一…...

深度内容运营与开源AI智能名片2+1链动模式S2B2C商城小程序在打造种草社区中的应用研究

摘要:移动互联网的迅猛发展极大地改变了消费者的购物行为和消费习惯,传统的购物体验已难以满足用户日益增长的个性化需求。在这种背景下,深度内容运营和实时互动成为提升用户购物体验、影响用户购物行为的重要手段。同时,开源AI智…...

RNN/LSTM/GRU 学习笔记

文章目录 RNN/LSTM/GRU一、RNN1、为何引入RNN?2、RNN的基本结构3、各种形式的RNN及其应用4、RNN的缺陷5、如何应对RNN的缺陷?6、BPTT和BP的区别 二、LSTM1、LSTM 简介2、LSTM如何缓解梯度消失与梯度爆炸? 三、GRU四、参考文献 RNN/LSTM/GRU …...

音频录制一般在什么情况下会选择保存为PCM?什么情况会选择保存为WAV?

在音频开发中,选择保存为 PCM 或 WAV 格式取决于具体的应用场景和需求。以下是两种格式的特点以及适用场景的分析: PCM 格式 特点: 原始音频数据: PCM 是未压缩的原始音频数据,没有任何文件头或元数据。数据直接以二进…...

C#常用744单词

1.visual 可见的 2.studio 工作室 3.dot 点 4.net 网 5.harp 尖端的,锋利的。 6.amework 骨架,构架,框架 7.beta 测试版,试用版 8.XML(全称:eXtensible Markup Language&#xff09…...

如何理解算法的正确性?

循环不变式(Loop Invariant) 是算法设计和程序验证中的一个核心概念,用于证明循环的正确性。它是在循环的每次迭代开始和结束时均保持为真的一种条件或性质,帮助开发者确保循环按预期工作,最终达到目标状态。 循环不变…...

蓝桥杯试题:排序

一、问题描述 给定 nn 个正整数 a1,a2,…,ana1​,a2​,…,an​,你可以将它们任意排序。现要将这 nn 个数字连接成一排,即令相邻数字收尾相接,组成一个数。问,这个数最大可以是多少。 输入格式 第一行输入一个正整数 nn&#xff…...

实验十一 Servlet(二)

实验十一 Servlet(二) 【实验目的】 1.了解Servlet运行原理 2.掌握Servlet实现方式 【实验内容】 改造实验10,引入数据库,创建用户表,包括用户名和密码:客户端通过login.jsp发出登录请求,请求…...

第五天 初步了解ArkTS和ArkUI

初步了解ArkTS和ArkUI,可以从以下几个方面进行概述: 一、ArkTS简介 定义与关系: ArkTS是HarmonyOS(鸿蒙系统)优选的主力应用开发语言。它基于TypeScript(TS)进行扩展,兼容TS的所有特…...

java中的锁面试题

1、多线程中 synchronized 锁升级的原理是什么? synchronized 是JVM层面的锁,是 Java 关键字,通过 monitor 对象来完成,synchronized 的实现涉及到锁的升级,具体为无锁、偏向锁、自旋锁、重量级锁 synchronized 锁升级…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

ip子接口配置及删除

配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

day36-多路IO复用

一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...