Java学习笔记-01

news2024/10/7 19:18:23

目录

jdk安装及环境配置

java前置知识

编写一个HelloWorld

常量

数据类型

变量

类型转换

算数运算符

一元运算符(++  --)

关系运算符

逻辑运算符(与或非,逻辑异或)

三元(三目)运算符

Scanner类的简单使用


jdk安装及环境配置

看到的一篇文章,讲的很详细。可以参照这个:jdk8安装与环境变量的配置

java前置知识

java跨平台原理

  • 是因为在对应的系统(window,linux,mac)上,都安装了对应的JVM(java虚拟机),所以才能在每个平台都能编译

 JRE与JDK的区别

  • JDK是Java程序开发工具包,包含了JRE和开发人员使用的工具
  • JRE是Java程序运行时的环境,包含了JVM和运行时所需要的核心库
  • 如果我们想要运行一个已有的Java程序,只需要安装JRE即可
  • 如果我们想要开发一个全新的Java程序,那么就需要安装JDK了

 计算机存储单元

  • 内存和硬盘都可以进行存储,计算机存储设备的最小信息元叫 位(又叫比特位 / bit / b)
  • 而计算机中的最小存储单位叫 字节(byte / B)

Dos常用命令

  • window + R        调出cmd
  • 盘符:        可以切换到指定盘符 

  • cd 文件夹名        可以切换到指定盘符,文件名可以按Tab键补全 
  • cd ..        可以切换到上一层文件目录
  • cd .\        可以切换到当前文件的根目录
  • dir        查看文件夹下的所有文件信息
  • cls        清屏
  • exit        退出

编写一个HelloWorld

新建一个文件夹(javaCoding),文件夹里新建文本文档HelloWorld.txt,写入以下内容

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

然后把txt后缀名改为java,也就是HelloWorld.java

然后鼠标点击文件夹,输入cmd

 会弹出cmd窗口,窗口中输入  javac HelloWorld.java    按下回车 

此时文件夹中会出现编译后的字节码class文件

然后cmd窗口中我们再输入 java HelloWorld  就会显示内容

 注意:如果文件中输出的内容包含中文,则编译的指令是

javac -encoding UTF-8 文件名.java

常量

  • 就是不会变化的量,一旦赋予了初始值,则后面就不能进行修改了
类型说明举例
字符串常量双引号括起来的内容"aabbcc"
整数常量不带小数点的数字1
小数常量带小数的数字1.1
字符常量用单引号括起来的内容,且只有一个'a'
布尔常量true或者falsefalse
空常量null(空值)不能够输出

数据类型

  • java是强类型语言,对每一个数据都必须作出明确的数据类型,才可以进行使用。不同的数据类型也分配了不同的内存空间
  • 基本数据类型又可分为 4 大类,即整数类型(包括 byte、short,int 和 long)、浮点类型(包括 float 和 double)、布尔类型和字符类型(char)

默认值及所占字节

变量

  • 在程序运行中,其值可以发生改变的值

变量类型  变量名  =  变量值;

int num = 100;  // 定义了一个变量名为num的变量,是数字型,初始值为100
// 或者这种方式
int num;
num = 100;

注意:

  • 定义long类型时,需要在后面加上L
  • 定义float类型时,需要在后面机上F
public static void main(String[] args) {
        // 声明浮点数时,再后面要加上f或者F
        float pi = 3.1415926f;
        System.out.println(pi);
        // 声明long类型时,需要在后面加上L或者l
        long count = 123456789L;
        System.out.println(count);
    }

类型转换

  • 分为自动类型转换和强制类型转换
  • 小数默认是double类型
  • 数字默认是int类型

自动类型转换

  • 把一个表示范围小的数值或者变量赋值给另一个数据范围大的变量(也就是从小到大)
double num = 10;  // 由数字型转成双精度型,会自动转换

强制类型转换(不推荐)

  • 把一个表示范围大的数值或者变量赋值给另一个表示范围小的变量(也就是从大到小)

目标数据类型  变量名  =  (目标数据类型)值或变量

int num = (int)9.99; // 9 把浮点型转成整数型,从大到小,需要强制转换

算数运算符

  • 一共有  +(加)  -(减)  *(乘)  /(除)  %(取余)  这5种
public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a + b); // 30
        System.out.println(b - a); // 10
        System.out.println(a * b); // 200
        System.out.println(b / a); // 2
        System.out.println(b % a); // 0
        float c = 9.99f;
        System.out.println(a + c); // 19.99
    }
  • char类型 + 数字型         如果char的值非数字,则会转变成ASCII码对应的数字进行计算
public static void main(String[] args) {
        char a = 'a'; // a 对应的ASCII码值为 97
        int b = 20;
        System.out.println(a + b); // 117
    }
  • 算数运算符中包含多个基本数据类型的值时,整个算数表达式的类型会自动进行提升

提升规则

byte / short / char                参与运算时,会自动提升到int类型

int                                        参与运算时,会自动提升到long类型

long                                     参与运算时,会自动提升到float类型

float                                     参与运算时,会自动提升到double类型

  • 如果是字符串+操作,则 字符相连
public static void main(String[] args) {
        String a = "999";
        System.out.println(a + 0); // 9990
    }

一元运算符(++  --)

  • 前自增或者前自减,都会先对自身进行增或者减,然后再参与其他临近的运算
public static void main(String[] args) {
        // 单独使用
        int a = 10;
        int res = (++a);
        System.out.println(res); // 11
        // 参与运算
        int b = 99;
        int res2 = ++b + --b + b;
        // 1. ++b 会先自增,此时b也就是(99 + 1),然后再参与临近的运算  b = 100
        // 2. --b 会先自减,此时的b也就是(100 - 1),然后再参与运算(99 + 1) + (100 - 1)  b = 99
        // 3. 然后再+b (99 + 1) + (100 - 1) + 99  b = 99
        System.out.println(res2); // 298
        System.out.println(b); // 99
    }
  • 后自增或者后自减,都会先参与其他临近的运算,然后再对自身进行增或者减
public static void main(String[] args) {
        // 单独使用
        int a = 10;
        int res = (a--);
        System.out.println(res); // 10
        System.out.println(a); // 9
        // 参与运算
        int b = 99;
        int res2 = b++ + b-- + b;
        // 1. b++ 会先参与临近的运算,也就是 99 + ?(这里的问好是因为后面临近的运算也是b的操作,
        // 不是确定的值) 然后再自增,此时b也就是(99 + 1)  b = 100
        // 2. b-- 会先参与临近的运算,也就是 99 + 100 然后再自减,此时的b也就是(100 - 1)  b = 99
        // 3. 然后再+b 99 + 100 + 99  b = 99
        System.out.println(res2); // 298
        System.out.println(b); // 99
    }

关系运算符

  • 关系运算符的结果都是布尔类型,也就是true或者false。关系运算符会产生一个布尔类型结果
  • ==        !=       >       >=       <       <=       一共就这6种,用于判断
  • 双等要求类型和值都必须相同
public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a == b); // false
        System.out.println(a != b); // true
        System.out.println(a > b); // false
        System.out.println(a < b); // true
        System.out.println('1' == 1); // false
    }

逻辑运算符(与或非,逻辑异或)

  • 判断表达式是否成立,判断的结果也是true或者false
  • 与 &        短路与 &&       或 |        短路或 ||        非 !        逻辑异或 ^ 
标志说明举例
&

前后的表达式都为true,才为true

前后都会进行判断

可以判断前后不是同一类型的

0 & 1 // 0

false & true // false

true & true // true

&&

前后的表达式都为true,才为true

但是如果前面的为false,则不会判断后面的,直接返回false

前后类型必须一致,才能进行判断

0 && 1 // 会直接报错
false && true // false
true && true // true
|

前后的表达式都为false,才为false

前后都会进行判断

可以判断前后不是同一类型的

0 | 1 // 1

false | true // true

false | false // false

||

前后的表达式都为false,才为false

但是如果前面的为true,则不会判断后面的,直接返回true

前后类型必须一致,才能进行判断

0 || 1 // 会直接报错

false || true // true

false || false // false

!取反操作,true的会返回false,false的会返回true

!true // false

!false // true

^异或操作,a ^ b(a和b结果不同则为true)

true ^ false // true

true ^ true // false

三元(三目)运算符

格式:

关系表达式 ?表达式1 :表达式2 ;

  • 如果表达式成立,则执行表达式1,反之不成立,则执行表达式2
int a = true ? 10 : 20;
System.out.println(a);
  • 当然,也可以进行链式调用(不推荐,比较乱,不如用if或者switch)
int a = true ? 10 : true ? 20: true ? 30 : 0;
System.out.println(a);

Scanner类的简单使用

  • 需要用到Scanner这个类
  • 第一步:进行导包
import java.util.Scanner;
  • 第二步:new Scanner类,创建一个具体的实例化对象
Scanner input = new Scanner(System.in);
  • 第三步:接收用户输入的数据,并进行下输入约束
int num = input.nextInt(); // 规定用户只能输入数字型

完整代码:

public static void main(String[] args) {
        // 提示用户输入
        System.out.println("请您输入一个整数数字:");
        // 接收用户输入
        Scanner input = new Scanner(System.in);
        // 规定用户只能输入数字型
        int num = input.nextInt();
        // 显示用户输入的内容
        System.out.println("您输入的数字为:" + num);
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/461033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue 过渡与动画的使用

transition 标签的作用&#xff1a;在插入 更新或 移除 DOM 元素时 可以给元素添加动画效果. transition 标签配合的 class 类有&#xff1a; - v-enter:进入的起点。 - v-enter-active:进入时的效果。 - v-enter-to:进入的终点。 - v-leave:离开的起点。 - v-leave-active:离…

USB-C为什么可以取代传统接口?消费类电子产品如何改用TYPE-C接口?

现如今&#xff0c;越来越多的设备选择使用Type-C接口来取代之前传统的接口。例如&#xff1a;手机去掉了之前的Micro USB接口&#xff0c;而选择Type-C&#xff1b;还有好多笔记本也取消了很多传统的传输接口&#xff0c;而采用Type-C来替代它们。那为何Type-C可以取代那么多的…

chatGPT电脑端怎么安装-chatgpt国内怎么用

chatgpt怎么用 ChatGPT是一个大型语言模型&#xff0c;可以用于自然语言生成和理解任务&#xff0c;比如对话系统、文本生成、翻译、摘要等。您可以使用以下步骤来使用ChatGPT: 选择一个平台&#xff1a;ChatGPT可以在不同的平台上运行&#xff0c;比如Python、JavaScript、Jav…

【Java基础练习题】多线程IO流操作实现文件的复制(举一反三)

前言&#xff1a;时不我待&#xff0c;忽而已春&#xff0c;初夏将至。然惊觉自身Java基础仍薄弱不堪&#xff0c;虽“雄关万道真如铁”&#xff0c;只得“万里关山从头越”。把基础打扎实才是根本&#xff0c;对于日后的工作而言也是极为重要。通过不断的学习和理解加上手动实…

使用vue2搭建项目的流程

论坛项目 服务器地址: http://172.16.11.18:9090 http://xawn.f3322.net:10004/ swagger地址: http://172.16.11.18:9090/doc.html http://xawn.f3322.net:10004/doc.html 前端h5地址: http://172.16.11.18:9099/h5/#/ http://xawn.f3322.net:10005/h5/# 前端管理系统…

回文自动机(PAM)入门路线 + P3649 【模板】[APIO2014] 回文串(PAM)

个人比较推荐的回文自动机学习路径&#xff1a; 回文自动机学习博客&#xff1a; 回文树&#xff08;讲的最严谨&#xff0c;oiwiki上的&#xff09; 回文自动机&#xff08;Palindrome Automanton PAM&#xff09;&#xff08;讲的最通俗易懂&#xff0c;知乎上的&#xff09…

Docker快速部署springboot项目

有很多开发者在项目部署过程中都会遇到一些繁琐的问题&#xff0c;比如打包、上传、部署等。而使用Docker可以非常方便地解决这些问题。在本文中&#xff0c;将详细讲解如何使用IDEA中的docker打包插件&#xff0c;将代码打包并直接发布到服务器上。这样&#xff0c;我们就可以…

CSS中的 clip 属性

参考&#xff1a;https://baijiahao.baidu.com/s?id1757136902803734131&wfrspider&forpc 作用&#xff1a; clip 属性用来设置元素的形状&#xff0c;用于剪裁绝对定位的元素。当一幅图像的尺寸大于包含它的元素时&#xff0c;clip 属性允许规定一个元素的可见尺寸…

blender 制作城市建筑模型

我不是很会用blender 但是他可以直接制作一篇区域的建筑模型 BlenderGIS插件 城市建筑3D模型自动生成 教程_Zhichao_97的博客-CSDN博客 学习了两种 一种是通过geo.json自己加了一堆mesh 或者geometry 自己用three 做的模型 另一种是用blender 做一个整个的模型直接导入进去 …

Java企业电子招标采购系统源码Spring Boot + Mybatis + 前后端分离 构建企业电子招采平台之立项流程图

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及…

LVS+keepalives高可用负载均衡

keepalived是一个基于vrrp协议来实现的LVS服务高可用方案&#xff0c;可解决静态路由器出现的单点故障问题 解决单点故障。 通过主备来保证高可用性&#xff0c; vrrp回忆 vlan区分广播域&#xff0c;vlan if 虚拟接口 vrrp只有一种报文:Advertisement报文&#xff08;通告…

SparkStreaming学习之——无状态与有状态转化、遍历kafka的topic消息、WindowOperations

目录 一、状态转化 二、kafka topic A→SparkStreaming→kafka topic B (一)rdd.foreach与rdd.foreachPartition (二)案例实操1 1.需求&#xff1a; 2.代码实现&#xff1a; 3.运行结果 (三)案例实操2 1.需求&#xff1a; 2.代码实现&#xff1a; 3.运行结果 三、W…

代码在洛谷上跑得慢怎么办?

前言 你有没有试过以下几种情况&#xff1a; 代码在别的OJ上能过&#xff0c;在洛谷上就T了你的代码和同学的几乎相同&#xff0c;但他的AC了&#xff0c;你的却TLE了 遇到这些情况&#xff0c;你可能要花上一个多小时才能解决&#xff0c;甚至难以解决&#xff0c;将问题一…

【springboot-04】ElasticSearch8.7搜索

为什么学&#xff1f;因为它查询速度很快&#xff0c;而且是非关系型数据库 &#xff08;NoSql&#xff09; 一些增删改查已经配置好了&#xff0c;无需重复敲码 ElasticSearch 更新快&#xff0c;本篇文章将主要介绍一些常用方法。 对于 spirngboot 整合 Es 的文章很少&#x…

看了这一篇文章,你还不懂MySQL体系结构,你来找我

前言 工作很长时间了&#xff0c;对于数据库的掌握程度却仅仅停留在表面的CRUD阶段&#xff0c;对于深层次的原理和技术知识了解的少之又少&#xff0c;随着岁数不断的增长。很多时候&#xff0c;出去找工作很迷茫&#xff0c;被面试官问的感觉自己很菜。现在利用工作休息时间&…

微信小程序第五节——登录那些事儿(超详细的前后端完整流程)

&#x1f4cc; 微信小程序第一节 ——自定义顶部、底部导航栏以及获取胶囊体位置信息。 &#x1f4cc; 微信小程序第二节 —— 自定义组件 &#x1f4cc; 微信小程序第三节 —— 页面跳转的那些事儿 &#x1f4cc; 微信小程序第四节—— 网络请求那些事儿 &#x1f61c;作 …

人工智能时代背景下,如何发展与应用自动化测试?

人工智能时代为自动化测试提供了机会和挑战。在发展自动化测试方面&#xff0c;是人工智能领域下的一个应用方向&#xff0c;和无人驾驶、机器人等一样&#xff0c;都是AI技术的应用场景。从技术的发展角度看&#xff0c;自动化测试一共经历了四代发展变化。从最早提出自动化测…

关于 变量

关于局部变量和静态变量&#xff08;基于有一定指针基础&#xff09; #include<stdio.h> void aaa() {int n10;} int main() {printf("%d",n);return 0; } 在这个代码里&#xff0c;很明显会报错&#xff0c;未定义该n标识符&#xff0c;因为这个n是局部变量…

在程序里面执行system(“cd /某个目录“),为什么路径切换不成功?

粉丝提问&#xff1a; 彭老师&#xff0c;问下&#xff0c;在程序里面执行system(“cd /某个目录”)&#xff0c;这样会切换不成功&#xff0c;为啥呢 实例代码&#xff1a; 粉丝的疑惑是明明第10行执行了cd /media操作&#xff0c; 为什么12行执行的pwd > test2.txt 结…

Unity InputField滑动条

InputField增加滑动条效果 类似图中效果 添加一个InputField组件 2 .添加一个Scrollbar放在InputField内 调整属性 调整InputFiled组件属性 需要将Scrollbal添加到InputField的scrollbar上 然后根据美术需求将位置进行调整&#xff0c;记得InputFiled下的Text不要被Scr…