java从入门到精通二(Java基本语法,关键字,数据类型)【下】

简介: 我们来看浮点数类型浮点数类型分为两种,一个是double,这个是双精度的,一个是float,这个是单精度的。说白了,双精度的变量类型就是比单精度的变量类型小数的保留位数多而已,这是使用上的区别。当然,在占用内存上,单精度的占用32位,也就是4个字节,而双精度占用的就是64位,也就是8个字节。在java中,一个小数会被默认为双精度类型,也就是double类型,如果你要指定为float类型,那么在数值后一定要加上f或者F。

我们来看浮点数类型


浮点数类型分为两种,一个是double,这个是双精度的,一个是float,这个是单精度的。说白了,双精度的变量类型就是比单精度的变量类型小数的保留位数多而已,这是使用上的区别。当然,在占用内存上,单精度的占用32位,也就是4个字节,而双精度占用的就是64位,也就是8个字节。在java中,一个小数会被默认为双精度类型,也就是double类型,如果你要指定为float类型,那么在数值后一定要加上f或者F。


我们来看示例


float f =1.34f//为ifloat类型赋值,后面加上f或者F
double d1 = 3.13d;
double d2 = 3.14;
//为double类型的变量赋值,就不需要加上或者D了。


我们再来看字符类型变量的使用说明

字符类型是存储单一字符的,我们用char表示,char类型的变量都会占用两个字节。再给char类型变量赋值时,我们要给值加上单引号,’’,我们要的是英文半角格式的单引号。我们还可以直接给定数字,像97,就代表了字符a。


我们来看示例


char c = 'a';
char c1 = 97;


我们来说明布尔类型变量

布尔类型变量只有两个值,那就是true和false,真和假,真假美猴王。

我们来看示例


boolean b = false;
boolean b1 = true;


1.6变量的类型转换


变量的类型转换其实就是常常发生在运算中的.。我们可以分为自动类型转换,和强制类型转换。自动类型转换变其实就是常常发生在运算中的.。是自己自动装换的,而强制类型装换,使我们自己来转换的。当一个类型的变量转换为取值范围比他大的变量类型时,就都是可以的。


我们来写代码感受一下。


public class var {
    public  static void main(String args[]){
        byte b = 5;
        int a = b;
        System.out.println(a);


我们来看运行效果。


20200901100012747.png

控制台给出a的值是5,那我们这样做是可以的。

下面,我们来看错误示例。


public class var {
    public  static void main(String args[]){
        int b = 5;
        byte a = b;
        System.out.println(a);


我们来看运行结果,我们在idea里看


20200901101122249.png

我们把Error拿出来。


Error:(6, 18) java: 不兼容的类型: 从int转换到byte可能会有损失

我们这样写是不对的

那我们非要这样写,又不想让它出现错误,我们这样写看看


public class var {
    public  static void main(String args[]){
        int b = 5;
        byte a = (byte)b;
        System.out.println(a);


我们给他强制类型转换。控制台输出如下


20200901101601530.png

这里没有报错,正常输出。


但其实如果我们int类型的变量的值很大,或者说比byte类型的取值范围要大,我们看发生什么,会不会有缺失。


我们来看代码

下面展示一些 内联代码片。


public class var {
    public  static void main(String args[]){
        int b = 298;
        byte a = (byte)b;
        System.out.println(a);


我们来看运行结果:


20200901102140168.png


这里给出我的是42,我们可能会一脸懵逼。这里我们想想,byte类型最多取到2的七次方减一,也就是127,我们的128他是容不下的。那么四十二又是哪来的?


我们的int类型占用4个字节,也就是32位,而byte占用一个字节,也就是8位。转换后,我们会丢失24位,也就是前3个字节会丢,我们计算机内存中将最后的可以保留下的一个字节进行了二进制转换为十进制,就是42了。


1.7:我们来看变量的作用域


很简单地说,变量只能作用域他所在的括号内

来看代码


class Var{
  public static void main(String args[]){
  int a = 5//这个a只能在这一成括号里有效。
}
}


我们再看一些java中的运算符


运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。


我们来看算术运算符


20200901105603340.png

以上是我们常见的几种

我们要注意一点,关于%,称之为取模运算,他的结果我们可以这样来说明

(-5) % 3 = -2,而5 %(-3)= 2。可以看出是与符号结果正负是与负号所在的位置有关的。


我们来看赋值运算符


20200901110305356.png

我们可以这样对多个变量赋值:

int x,y,z;

x=y=z = 4;

但我们不可以这样int x=y=z = 4;

我们来看关系运算符


20200901110737691.png


我们来看逻辑运算符


20200901110919615.png

我们注意一点。&和&&还是有很大区别的,虽然都是与操作,相同的地方是,当两边的运算都为true时,运算结果才为true,否则就是false。不同的是在使用&运算时。不论左边结果是啥,他两边的表达式都会运算,而&&就不一样了,当左边为false时,右边就不会进行运算.


我们来看算术符的优先级

2020090111163816.png


20200901110919615.png2020090111163816.png

相关文章
|
14天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
20天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
26天前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
66 5
|
23天前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
32 1
|
1月前
|
Java 数据处理 开发者
Java多线程编程的艺术:从入门到精通####
【10月更文挑战第21天】 本文将深入探讨Java多线程编程的核心概念,通过生动实例和实用技巧,引导读者从基础认知迈向高效并发编程的殿堂。我们将一起揭开线程管理的神秘面纱,掌握同步机制的精髓,并学习如何在实际项目中灵活运用这些知识,以提升应用性能与响应速度。 ####
45 3
|
10天前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
|
18天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
1天前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
1天前
|
安全 Java 开发者
Java中的多线程编程:从基础到实践
本文深入探讨了Java多线程编程的核心概念和实践技巧,旨在帮助读者理解多线程的工作原理,掌握线程的创建、管理和同步机制。通过具体示例和最佳实践,本文展示了如何在Java应用中有效地利用多线程技术,提高程序性能和响应速度。
16 1
|
9天前
|
安全 Java 开发者
Java 多线程并发控制:深入理解与实战应用
《Java多线程并发控制:深入理解与实战应用》一书详细解析了Java多线程编程的核心概念、并发控制技术及其实战技巧,适合Java开发者深入学习和实践参考。
下一篇
无影云桌面