Java基础(二)

接上一讲,我们接着来聊聊Java的一些基础知识,下一讲就会进行流程的控制.

类型转换

首先呢,是类型的转换,接上一个内容的数据类型,类型转换就是数据类型更进一步的应用.

由于Java是强类型语言,所以有些运算是需要进行类型转换的,类型转换分为强制转换跟自动转换.

运算中,不同类型通过转换,成为同一类型.

需注意:

  • 强制转换需要注意内存溢出问题(或者精度问题)
  • 不能对布尔值进行转换(布尔值是按位运算的)
  • 小转大自动转换,大转小需要强制转换
  • 不能把对象类型转化为不相干的类型

补充一个JDK7的新特性,数字很大的时候可以加下划线分割1000_0000_0000,输出时并不会输出下划线,便于代码的阅读.

强制转换:

(int)

例如:int A = (int) B,将B强制转化为int类型

自动转换不需要我们操作,在小范围类型转大范围类型时,自动进行转换.

变量

变量是可以变化的量,指代一块空间,其实变量就i相当于给一个箱子命名,在用的时候可以直接用名字将箱子提取出来

一个完整的变量包括类型,名字,作用域

类型就是该变量的属性,作用域就是他的生命周期.

局部变量:是在方法里定义的,生命周期只是在方法里生效,必须要初始化

实例变量:从属于对象(类),是定义在类里的,不初始化时,默认为零,布尔值默认为false,除了基本类型,默认值是null

类变量:加了static,从属于类,会随着类而同时出现消失(后文会加以对static详解)

常量

常量:final + 常量名,一般全大写,值被定义后,程序运行过程中不可变更,即该值只能赋值一次

注意:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
  • 不建议一行定义多个变量,会使可读性变差
  • 变量名必须是合法字符

运算符

当多个数据类型混在一起运算时,会自动转为较"大"的类型,这也是我们所说的自动转换类型

简单算术运算

  • 算术运算符就是加减乘除(+-*/)
  • "%"是取余符号,4%2=0,5%2=1,也就是我们小学所学的5/2=2.....1;

接下来就是我们的自增运算(++,--):

简单来说++运算就是本身自增1,相当于a = a+1;--就是a=a-1;

再来看a++与++a的区别

  • 首先解释b = a++,先将a赋值给b,再进行a=a+1;
  • b = ++a,是先执行a = a+1,再将执行后的结果赋值给b.

在算数运算中还有一个十分重要的运算就是幂运算,只不过他是借助一个库函数,比如2的3次方

可以用Math.pow(2,3)来表示.

在Java中的许多运算,都可以用工具库来进行运算

逻辑运算:

与,或,非

  • 与:(&&),两个都为真,结果为真
  • 或:(||),有一个为真,则结果为真
  • 非:(!),真变为假,假变为真

按位运算:

根据二进制位进行比较,这个方法胜在计算速度快,了解即可,想深入的也可以自行查阅,不做强求.

  • &:即同一位上的01进行比较,有一个为0,则该位上为0
  • |:即同一位上的01进行比较,有一个为1,则该位上为1
  • ^:即异或,即同一位上的01进行比较,相同为0,不同为1
  • ~:取反,0011,变为1100.
  • <<:左移,即二进制位向左移一位,简单来说即使*2(效率极高)
  • ">>":右移,即二进制位向右移一位,简单来说即使/2(效率极高)

条件运算符(三目运算符):

条件运算符也称三目运算符,格式如下:

x ? y : z

意思就是x的结果为真,则返回y,为假,则返回z

扩展赋值运算符:

a+=b:就是a = a + b

a-=b:就是a = a - b

字符串连接符:

字符串连接符放在这里跟大家聊一聊,首先

""+a+b

a+b+""

优先级:

包机制

包的本质就是文件夹

为了更好的组织类,java提供了包机制,用于区别类名的命名空间

语句格式:

package pkg1[]

一般以公司域名倒置最为包名:com.baidu.www

导入包:

import + 包名

这样就可以用别人写的函数

:通配符,导入该包下所有的类

import +包名+
,就可导入该包下所有的类.

无规矩不成方圆,阿里巴巴开发手册

JavaDoc

JavaDoc命令是用来生成自己的API文档的,使用命令行执行,也可以使用idea生成

Java基础(完)


首先我觉得自己的水平所写出来的东西并不值得深入讨论,甚至可能会漏洞百出,所以大佬轻喷.

关于我为什么要写博客,第一呢是因为自己处于复盘阶段,想再把基础的东西巩固一下.

第二个是想通过这种方法来督促自己学习,并把自己所学到的通过记录,给同样迷茫的同学一个大体方向,如果想从零开始了解Java,可以从博客里Java分栏里的第一篇往后阅读.

在最后重申:水平有限,大佬轻喷.

Java入土--Java基础(二)的更多相关文章

  1. JAVA并行程序基础二

    JAVA并行程序基础二 线程组 当一个系统中,如果线程较多并且功能分配比较明确,可以将相同功能的线程放入同一个线程组里. activeCount()可获得活动线程的总数,由于线程是动态的只能获取一个估 ...

  2. Java入土---Java基础(一)

    注释,标识符,关键字 注释类似于我们的随手记,并且不会被执行,是写给我们自己看的,书写注释是一个非常好的习惯 重点来了,Java中注释有三种:单行注释,多行注释,文档注释 单行注释 "//& ...

  3. Java入土---Java运行机制及IDEA的安装使用

    Java运行机制及IDEA的安装使用 java程序运行机制 计算机高级语言分为编译型语言跟解释型语言,而java同时具有两者的特点. 可能对于新手来说,什么是编译,什么是解释; 简单来说,编译就是将代 ...

  4. Java并发程序设计(二)Java并行程序基础

    Java并行程序基础 一.线程的生命周期 其中blocked和waiting的区别: 作者:赵老师链接:https://www.zhihu.com/question/27654579/answer/1 ...

  5. JVM 内部原理(七)— Java 字节码基础之二

    JVM 内部原理(七)- Java 字节码基础之二 介绍 版本:Java SE 7 为什么需要了解 Java 字节码? 无论你是一名 Java 开发者.架构师.CxO 还是智能手机的普通用户,Java ...

  6. Java JDBC的基础知识(二)

    在我的上一篇Java JDBC的基础知识(一)中,最后演示的代码在关闭资源的时候,仅仅用了try/catch语句,这里是有很大的隐患的.在程序创建连接之后,如果不进行关闭,会消耗更多的资源.创建连接之 ...

  7. Java面试题总结之Java基础(二)

    Java面试题总结之Java基础(二) 1.写clone()方法时,通常都有一行代码,是什么? 答:super.clone(),他负责产生正确大小的空间,并逐位复制. 2.GC 是什么? 为什么要有G ...

  8. [原]Java修炼 之 基础篇(二)Java语言构成

    上次的博文中Java修炼 之 基础篇(一)Java语言特性我们介绍了一下Java语言的几个特性,今天我们介绍一下Java语言的构成.        所谓的Java构成,主要是指Java运行环境的组成, ...

  9. Java学习日记——基础篇(二)基本语法

    变量 变量和常量是程序处理的两种基本数据对象,变量是程序的基本组成单位 变量的目的就是确定目标并提供存放空间 public class Hello { public static void main( ...

随机推荐

  1. java中使用反射获取pojo(实体)类的所有字段值

    出处:https://developer.aliyun.com/article/239346 说起反射,不得不说它实在是太强大了,通过反射就可以轻轻松松拿到各种东东,如果你想在项目中解除对某个类的依赖 ...

  2. 创建spring boot项目并添加多个模块时,启动报 错误: 找不到或无法加载主类

          最近建个项目发现启动报,找不到或无法加载主类,想想肯定是自己配置出问题了,经过排查确实出问题了,(根pom中的bulid为移到子模块中去导致的),下面演示下正确的创建子模块的步奏 1. 创 ...

  3. python使用插入法实现链表反转

    # encoding=utf-8 class LNode(object): def __init__(self, x): self.data = x self.next = None def reve ...

  4. JVM收藏的文章

    JAVA 内存泄露详解(原因.例子及解决) https://blog.csdn.net/anxpp/article/details/51325838 JVM内存区域划分Eden Space.Survi ...

  5. Java中Arrays数组工具类的使用全解

    本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧 Arrays数组工具类 方法一览表 快 ...

  6. VMware15.5虚拟机安装及LInux系统安装前 准备工作

    VMware15.5虚拟机安装及Linux系统安装前 准备工作 一.vmware15.5安装 1.安装环境准备 1.vmware15.5版本和秘钥(版本资源和密钥小白已经上传到资源文档里面,要想下载可 ...

  7. Typora软件的使用

    Typora软件 一.简介 1.该软件编写文档采用markdown格式是目前最为频繁的一种格式 2.该软件生成的文档后缀名是.md结尾 3.下载网址 https://www.typora.io/ 二. ...

  8. v78.01 鸿蒙内核源码分析(消息映射篇) | 剖析LiteIpc(下)进程通讯机制 | 百篇博客分析OpenHarmony源码

    百篇博客分析|本篇为:(消息映射篇) | 剖析LiteIpc(下)进程通讯机制 进程通讯相关篇为: v26.08 鸿蒙内核源码分析(自旋锁) | 当立贞节牌坊的好同志 v27.05 鸿蒙内核源码分析( ...

  9. MySQL架构原理之体系架构

    MySQL是最流行的关系型数据库软件之一,由于其体量小.速度快.开源免费.简单易用.维护成本低等,在季军架构中易于扩展.高可用等优势,深受开发者和企业的欢迎,在互联网行业广泛使用. 其系统架构如下: ...

  10. Spring Boot自动配置SpringMVC(一)

    实际上在关于Spring Boot自动配置原理实战的文章Spring Boot自动配置实战 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中,可以看到我们使用到了@ReqeusMappi ...