@


前言

java历史:

---1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器

1994年将Oak语言更名为Java

1998年JDK1.2时,更名为Java 2 Platform

分为标准版J2SE,企业版J2EE,微型版J2ME

Java 既安全、可移植,又可跨平台,而且人们发现它能够解决Internet 上的大型应用问题

Internet使Java成为网上最流行的编程语言

Java对Internet的影响也意义深远

B/S的兴起 & C/S的没落

一、一些基本的指令

windows基本操作指令

二、java

1.java的三个版本

JavaSE:做桌面应用程序,java基础

JavaEE: 企业级应用

JavaME: 手机端,,淘汰

2.java特点

Java特点

3.运行一个java程序

public class a1 {

    public static void main(String[] args) {
System.out.println("hello");
} }

步骤:

  1. 打开cmd
  2. 打开对应的文件位置
  3. javac 文件名.java
  4. java 文件名

运行结果:

三、java的数据类型

1.java基本数据类型

数据类型 名称 字节数 位数 范围
byte: 字节型 1个字节 8位 [-128,127]
short:: 短整型 2个字节 16位 [-215,215-1]
int: 整形 4个字节 32位 [-231,231-1]
long 长整形 8个字节 64位
float 单精度 4个字节 32位
double 双精度 8个字节 64位

注意:

1.tinyint一般用于性别的数据类型

2.在java语言中整数型字面值默认当做int类型,如果想让整数型字面值被当做long类型,需要在字面值后面添加l/L,一般多用L。

  

  报错的原因是 自动将字面值当做int类型来处理,而2147483648已经超出了int的范围,所以需要将它标识为其他的能容纳它的类型。

  

2.强制转换的原理

2.强制转换的原理

  以long 类型强制转换为int类型为例,假设有一个long类型的数据是 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100100,

  将它强转为int,就是直接将long类型的前四个字节砍掉,只拿后面的四个字节。00000000 00000000 00000000 01100100。

  所以,强制类型转换需谨慎,有可能会丢失精度。

  

  上例:解剖  (计算机存储数据是以二进制补码的形式存储  正数的补码和源码相同,负数的补码 是负数的绝对值对应的二进制码 对位取反再+1)

  2147483648L 的二进制是  00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000

  强制类型转换后得到的是  10000000 00000000 00000000 00000000  (砍掉前4个字节)

  也就是说  10000000 00000000 00000000 00000000  这是原数据的补码形式  补码求源码

  先减1    01111111 11111111 11111111 11111111

  对位取反  10000000 00000000 00000000 00000000 

  所以源码是 10000000 00000000 00000000 00000000  2147483648

  而补码的符号位是1(首位),则表示该数据是负数,所以原数据是  -2147483648

  2147483648L是long类型,8个字节,符号位是0,所以对于long类型来说2147483648L是正数

  

  按道理说整形字面值赋值给byte,大专小需要强制类型转换,但是编译通过,而128编译报错,说明底层字面值只要在byte范围内是不需要认为强制类型转换的,此时要纠正错误就需要强制类型转换。

  

  具体还原过程以及计算结果

  

  char类型尝试

    常见的一些字符的ASCII码 A-->65,a-->97,数字0-->48(其他数字或字符都是依次递增)



  

  double和float

    带小数的值默认是double 类型,double类型的字面值赋值给float类型变量,大转小需要强制类型转换,所以编译报错

    解决办法

      1.强制类型转换为float

      

      2.将字面值标识为float类型

     

3.八种基本数据类型之间的转换规则

 1、八种基本数据类型除了boolean外,其他的都能相互转换。

 2、小容量可以自动向大容量转换,即自动类型转换。容量大小如下

    byte<<short(char)<<int<<long<<float<<double

注意:

  1、不管浮点型占几个字节,其容量都比整形大

  2、char和short表示的种类不同,但是char可以取到更大的正整数

  3、强制类型转换慎用,因为有可能会丢失精度

  4、当一个整数字面值没有超过byte,short,char类型的取值范围时,可以直接复制给byte,short,char类型,此时的转换机制底层帮我们完成了,目的是方便程序员开发

  5、byte,short、char运算时,先转换成int后,再参与运算。

  6、多种数据类型混合运算时,先转换成参与运算中最大的数据类型后,再进行计算。

四、赋值运算符与逻辑运算符

1.赋值运算符

+=

-=

*=

/=

%=

例如:

a+=1 -----> a=a+1

2.逻辑运算符

与:只有当所有条件都为true,整体的结果才是true。如果有一个为false,则整体即为false

双与:当发现条件中,只要有一个false,则停止判断。(效率高)

单与:无论有多少个false,所有的条件都看。

或:只有当所有条件都为false,整体的结果才是false。如果有一个为true,则整体即为true

但与:单与:无论有多少个false,所有的条件都看。

非:取反

异或:有假有真即为真,全真全假即为假

2022-7-13 java_1 第七组 刘昀航的更多相关文章

  1. 2022-7-12 javascript(2) 第七组 刘昀航

    @ 目录 2022-7-12学习 第七组 刘昀航 前情提要 一.for循环 二.for in循环 三.while 和 do...while循环 1.while do... while 四.内置函数 五 ...

  2. 2022-7-10 css 第七组 刘昀航

    ​ 样式通常存储在样式表中(先定义样式表),再把样式表添加到html元素中 定义CSS样式的方式: 行内样式(内联样式) ​ ·行内样式仅针对当前标签生效,如果当前的样式不需要复用,可以用行内样式 · ...

  3. 2022-7-9 html 第七组 刘昀航

    ​ 一.基础认知 1.1 认识网页 网页的组成: 文字.图片.音频.视频.超链接 网页背后的本质:前端程序员写的代码 前端的代码通过什么软件转换成用户眼中的页面:浏览器转化(解析和渲染) 1.2 5大 ...

  4. 2022-7-14 java_2 第七组 刘昀航

    @ 目录 一.java约定规范 1.关于建包 2.控制台输入(Scanner) 关于Scanner的bug 计算器小练习: 二. 1.数组 建立数组的三种方式: 数据类型的初始值: 2.二维数组 使用 ...

  5. 2022-7-11 javascript学习 第七组 刘昀航

    ​ JavaScript是什么? 编程语言,脚本语言,依赖于某种容器来运行. JS是运行在浏览器上的,可以帮助我们去控制页面. Vue.js   react.js    jquery.js    an ...

  6. Vue学习之--------列表渲染、v-for中key的原理、列表过滤的实现(2022/7/13)

    文章目录 1.基本列表 1.1 基本知识 1.2 代码实例 1.3 测试效果 2.key的原理 2.1基本知识 2.2 代码实例 2.3 测试效果 2.4 原理图解 3.列表过滤 3.1 代码实例 3 ...

  7. 2022 07 13 第一小组 田龙跃 Java再学习笔记

    1.类名命名规则: 只能由数字字母,下划线,美元符号组成(不能以数字开头,尽量不要用下划线开头) 2.注释(养成多写注释的好习惯) 单行注释 // ctrl+/ 多行注释 // ctrl+shirt+ ...

  8. [对对子队]会议记录4.13(Scrum Meeting 4)

    今天已完成的工作 梁河览 ​ 工作内容:初步完成存档功能 ​ 相关issue:实现游戏内UI界面使用的组件 马嘉 ​ 工作内容:找到了原料组件 ​ 相关issue:实现游戏内UI界面使用的组件 吴昭邦 ...

  9. 【ASP.NET Core】MVC模型绑定:自定义InputFormatter读取CSV内容

    在上一篇文章中,老周介绍了用自定义 ModelBinder 的方式实现一个 API(或MVC操作方法)可以同时支持 JSON 格式和 Form-data 格式的数据正文.今天该轮到 InputForm ...

随机推荐

  1. 【前端干货】别再羡慕别人的Excel啦,教你点击按钮直接打开侧边栏!

    负责技术支持的葡萄又来啦. 三日不见,我们的客户又为我们发来新的问题. 这次我们需要实现的场景是在前端表格环境中,像模板按钮那样,点击之后弹出一个侧边栏,然后通过点击不同的单元格显示不同的内容. 挤接 ...

  2. GO语言学习——切片一

    切片(slice) 数组的长度的固定的.是声明之后不能变的.是类型的一部分 切片是一个引用类型 切片的定义 声明切片类型的基本语法如下: var name []T 其中, name:表示变量名 T:表 ...

  3. .NET桌面程序应用WebView2组件集成网页开发4 WebView2的线程模型

    系列目录     [已更新最新开发文章,点击查看详细] WebView2控件基于组件对象模型(COM),必须在单线程单元(STA)线程上运行. 线程安全 WebView2必须在使用消息泵的UI线程上创 ...

  4. Linux编译安装-软件

    编译源码的项目工具 C.C++的源码编译:使用make项目管理器 configure脚本 --> Makefile.in --> Makefile 相关开发工具: autoconf: 生成 ...

  5. 干货 | Nginx 配置文件详解

    一个执着于技术的公众号 前言 在前面章节中,我们介绍了nginx是什么.如何编译安装nginx及如何彻底卸载nginx软件. 干货|给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 ...

  6. PHP代码审计之命令注入攻击

    PHP漏洞-命令注入攻击 命令注入攻击 PHP中可以使用下列5个函数来执行外部的应用程序或函数 system.exec.passthru.shell_exec.``(与shell_exec功能相同) ...

  7. HamsterBear Linux Low Res ADC按键驱动的适配 + LVGL button移植

    HamsterBear lradc按键驱动的适配 平台 - F1C200s Linux版本 - 5.17.2 ADC按键 - 4 KEY tablet 驱动程序位于主线内核: drivers/inpu ...

  8. Web安全学习笔记 XSS上

    Web安全学习笔记 XSS上 繁枝插云欣 --ICML8 XSS的分类和基本认识 XSS的危害 同源策略的基本认识 一.XSS的分类和基本认识 1. 简介 XSS全称为Cross Site Scrip ...

  9. AQS源码三视-JUC系列

    AQS源码三视-JUC系列 前两篇文章介绍了AQS的核心同步机制,使用CHL同步队列实现线程等待和唤醒,一个int值记录资源量.为上层各式各样的同步器实现画好了模版,像已经介绍到的ReentrantL ...

  10. 无线:WEP

    WEP是Wired Equivalent Privacy的简称,有线等效保密(WEP)协议是对在两台设备间无线传输的数据进行加密的方式,用以防止非法用户窃听或侵入无线网络.不过密码分析学家已经找出 W ...