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. webpack4 mini-css-extract-plugin

    在使用webpack的extract-text-webpack-plugin插件提取单独打包css文件时,报错,说是这个插件要依赖webpack3的版本. webpack4得使用mini-css-ex ...

  2. 内部类&异常

    /* 内部类 内部类类别: 成员内部类: 在一个类的成员位置定义另外一个类,那么另外 一个 类就称作为成员内部类. 成员内部类的访问方式: 方式1: 在外部类内提供一个方法创建内部类的对象进行访问. ...

  3. 何为VRRP

    VRRP 1.VRRP概述 2.VRRP结构 3.VRRP双主双备 前言:如何让多个网关能协同工作但又不会互相冲突?这时VRRP就应运而生,它可以实现网关的备份,又能解决多个网关之间互相冲突的问题. ...

  4. fuzz——AFL基础使用方法

    最近打 ctf 的时候感觉有点遇到瓶颈,就来 fuzz 这块看看. AFL 全称为 American huzzy loop,是 Fuzzing 最高级的测试工具之一.这个工具对有源码和无源码的二进制程 ...

  5. docker错误处理——docker Job for docker.service failed because the control process exited with error code.

    (15条消息) docker Job for docker.service failed because the control process exited with error code._Hel ...

  6. 编译安装http2.4

    编译安装http2.4 1.安装相关依赖包 [root@centos7 ~]yum -y install gcc make 2.下载http2.4包,并解压 [root@centos7 ~]#tar ...

  7. 描述nginx中worker_processes、worker_cpu_affinity、worker_rlimit_nofile、worker_connections配置项的含义

    worker_processes worker进程的数量,应小于等于cpu核心数,auto为当前主机cpu核心数 work_processes 4 worker_cpu_affinity 配置CPU亲 ...

  8. 《PHP程序员面试笔试宝典》——如何回答快速估算类问题?

    如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 有些大企业的面试官,总喜欢出一些快速估算类问题,对他们而言,这些问题只是手段,不是目的,能够得到一个满意的结果固然是他们 ...

  9. ESXI 7.0.0 U2 部署

    文章目录 什么是ESXI? ESXi 的优势 功能特性 部署ESXI 创建虚拟机 开始安装 打开浏览器输入ip进行管理 什么是ESXI? ESXI官网:https://www.vmware.com/c ...

  10. html页面预览pdf文件使用插件pdfh5.js

    html预览pdf文件需要依赖pdf.js 移动端适配需要pdfh5.js 记录移动端适配pdfh5.js的用发 在线预览: https://www.gjtool.cn/pdfh5/pdf.html? ...