初识Java——(Java学习笔记一)

冯诺依曼体系结构

JAVA核心优势:跨平台---通过JVM(java虚拟机)来实现

JVM:Java虚拟机的一种规范

标示符:只能以下划线、美元符号($)、字母、数字组成,不能以数字开头

float:(占用4个字节的储存空间)浮点数并不能精确地表示所有的小数,存在舍入误差

double占用8个字节的存储空间

char占2个字节

int占4个字节

Boolean类型(占一位不是一个字节),一个字节占8位

需要精确的高可以使用BigDecimal类

double和float 都不能精确的表示一个数值

自动数据类型转换:容量小的数据类型可以转换为容量大的数据类型

为什么java能够跨平台运行:

    java之所以能够实现跨平台运行,是因为他根本不直接运行在任何底层平台上,而是需要在哪里运行,就在哪里事先准备好自己的java平台。

JVM(java虚拟机),是java语言的运行环境

java编译器针对jvm产生class文件,因此事独立于平台的

java解释器负责将jvm的代码在特定的平台上运行的

java虚拟机是不跨平台的。

class文件---字节码文件

main方法的作用:

程序的入口

保证程序的独立运行

被jvm调用

数据类型:基本数据类型和引用数据类型

基本数据类型:数值型(整数类型(byte、int、long、short)和浮点类型(float、double))、字符型(char)、布尔型(Boolean)

引用数据类型:类、枚举、注解、接口(interface)、数组([])

占用字节数:byte(8),short(16),int(32),long(64),float(32),double(64)

小----->大byte,short,char<int<long<float<double

整型默认:int

浮型点默认:double

类型转换:自动类型转换也叫隐式类型转换(向上转型)(小---->大)、强制类型转换也叫显式类型转换(大------>小)

++在变量的后面,表示先运算在自身加1

++在变量的前面,表示先自身加1在运算

1.0/0 或者1/0.0 结果为Infinity(正无穷大)因为数值类型被提升为double型 double的精度比int精度高

+=,-=,*=,/=,%=:有一个隐式的类型转换

异或(^):相同就为FALSE,不同就为TRUE

"&"和"&&"的区别:单与时无论左边真假右边都进行运算,双与时,如果左边为真右边参与运算,如果左边为假,那么右边不参与运算

"|"的"||"区别同理:双或时,左边为真右边不参与运算

"^"和"|"不同之处时,当左右都为TRUE时,"^"结果为FALSE

短路与(&&):当&&左边的运算为FALSE时,就不在判断右边的运算了

短路或(||):当||左边的运算为TRUE的时候,就不在判断||右边的运算了。

三元运算符:

Boolean表达式?语句1:语句2

当Boolean为TRUE时执行语句1,当Boolean表达式为FALSE时,执行语句2

移位:

左移(>>)与右移(<<)

左移(右移):将二进制码整体左移指定位数,左移之后的空使用‘符号位’来补充

1)若是正数,则使用0来补充

2)若是负数,则使用1来补充

无符号右移(>>>),将二进制码整体右移指定位数,向右移一位就是除以2,

右移之后的空使用‘0’来补充

循环的控制:

控制外层循环,可以使用标签(outer:for(){} break outer;)

终止外层循环:break 外层循环的标签

跳出外层循环:continue 外层循环的标签

return:结束循环所在的方法

break,return,continue语句后面不能再有语句

System.out.print()可以不传参传参

System.out.print()必须传参

时间: 2024-10-24 15:32:09

初识Java——(Java学习笔记一)的相关文章

java nio学习笔记(一)

位置保留,待用 java nio学习笔记(一),布布扣,bubuko.com

JAVA基础学习笔记(2)

看了几天的视频了,都没时间来写下学习笔记,今天来写下第二次的学习笔记,前几天看的给忘记了,就写最新看到的吧 主要内容:1.类的变量与函数(方法) 2.对象的存储方式 3.新建一个对象及对象的赋值与调用 4.空对象 5.匿名对象 1.类的变量与函数(方法) class Dog      //类名 { String name;  //变量的声明 int age; String color; void bark()   //方法的定义(返回值为空,不带参数) { System.out.println(

java排序学习笔记

前面写了js的排序实现,总得玩玩java的哈. 同样,冒泡.选择.快速(这三个之前实现过也写过文章).堆排序,然后做比较. 主要遇到的难点: - -||想轻松点写个封装计时的逻辑,不想每调用一个排序就要写一个计时代码.想想,还是javascript写起来方便: java的话,我想到的方法是写一个抽象类:抽象出排序方法,实现一个排序计时方法(该方法调用了抽象排序,但在先后排序时加入计时代码[感觉像是aop操作]): 接着所有排序类都继承这个抽象类,并实现排序方法,调用的时候直接调用继承的排序计时方

《深入Java虚拟机学习笔记》- 第4章 网络移动性

Java虚拟机学习笔记(四)网络移动性 <深入Java虚拟机学习笔记>- 第4章 网络移动性,布布扣,bubuko.com

《深入Java虚拟机学习笔记》- 第7章 类型的生命周期

一.类型生命周期的开始 如图所示 初始化时机 所有Java虚拟机实现必须在每个类或接口首次主动使用时初始化: 以下几种情形符合主动使用的要求: 当创建某个类的新实例时(或者通过在字节码中执行new指令,或者通过不明确的创建.反射.克隆和反序列化): 当调用某个类的静态方法时(即在字节码中执行invokestatic指令): 当使用某个类或接口的静态字段,或者对该字段赋值时(用final修饰的静态字段除外,它被初始化为一个编译时常量表达式): 当调用Java API中的某些反射方法: 当初始化某个

《深入Java虚拟机学习笔记》- 第13章 逻辑运算

<深入Java虚拟机学习笔记>- 第13章 浮点运算 <深入Java虚拟机学习笔记>- 第13章 逻辑运算,布布扣,bubuko.com

《深入Java虚拟机学习笔记》- 第12章 整数运算

Java虚拟机提供几种进行整数算术运算的操作码,他们执行基于int和long类型的运算.当byte.short和char类型值参与算术运算时,首先会将它们转换为int类型.这些操作码都不会抛出异常,溢出在这里通常可以被忽略. 整数加法 操作码 操作数 说明 iadd (无) 从栈中弹出两个int类型数,相加,然后将所得int类型结果压回栈 ladd (无) 从栈中弹出两个long类型数,相加,然后将所得long类型结果压回栈 将一个常量与局部变量相加 操作码 操作数 说明 iinc vindex

《深入Java虚拟机学习笔记》- 第2章 平台无关

Java虚拟机学习笔记(二)平台无关 <深入Java虚拟机学习笔记>- 第2章 平台无关,布布扣,bubuko.com

java JDK8 学习笔记——第16章 整合数据库

第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程序. 2.JDBC标准主要分为两个部分:JDBC应用程序开发者接口和JDBC驱动程序开发者接口.应用程序需要联机数据库,其相关API主要在java.sql和javax.sql两个包中. 3.应用程序使用JDBC联机数据库的通用语法: Connection conn = DriverManager.g

Java并发学习笔记(九)-原子类AtomicInteger

AtomicInteger能够保证对一个整型的操作是原子性.像i++这个操作不是原子操作,存在竞态条件,所以需要加锁,但是加锁的性能不高,如果仅仅为了对一个整数加1.我们来看下他的实现. private volatile int value; AtomicInteger本身持有一个整型变量,所有的操作都是基于这个变量的.变量由violate修饰,这个变量是保证可见性的,具体可见另一篇博客 Java并发学习笔记(六)-互斥性和内存可见性. 来看一下对value加1的操作 public final