Java 关键字

    1. 被Java语言赋予特定含义的单词
    2.  组成关键字的字母全部小写
    3.  goto和const作为保留字存在,目前并不使用
    4. 一般关键字在IDE中会高亮

用于定义数据类型的关键字

class

interface

byte

short

int

long

float

double

char

boolean

void

       

用于定义数据类型值的关键字

true

false

null

   

用于定义流程控制的关键字

if

else

switch

case

default

while

do

for

break

continue

return

       

用于定义访问权限修饰符的关键字

private

protected

public

   

用于定义类,函数,变量修饰符的关键字

abstract

final

static

synchronized

 

用于定义类与类之间关系的关键字

extends

implements

     

用于定义建立实例及引用实例,判断实例的关键字

new

this

super

instanceof

 

用于异常处理的关键字

try

catch

finally

throw

throws

用于包的关键字

package

import

     

其他修饰符关键字

native

strictfp

transient

volatile

assert


Java标示符

    1. 给类,接口,方法,变量等起名字时使用的字符序列
    2. 由英文大小写字母和数字以及$和_组成,切不能为Java关键字,同时不能以数字开头
    3. 标示符区分大小写

Java 注释

    1. 为了对程序进行说明
    2. 单行注释 //注释内容
    3. 多行注释 /*注释内容*/
    4. 文档注释 /**注释内容 */

Java常量

    1. 执行程序过程中值不会发生变化
    2. 字符串常量 例如 "aba", "happy"
    3. 整数常量    例如 10,二进制表示(0b1010),八进制表示(012),十进制表示(10,默认表示形式),十六进制表示(0x000A)
    4. 小数常量    例如 1.1,2.1等
    5. 字符常量    例如 'a', 'b',但是'ab'是错的
    6. 布尔型常量 例如 true,false
    7. 空常量       只有null

整数常量会有原码,反码,和补码的区别,所有数据的运算都是采用补码进行的;

    1. 原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
    2. 反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
    3. 补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

Java变量

    1. 在程序执行的过程中,在某个范围内其值可以发生改变的量;
    2. 定义格式:数据类型 变量名 = 初始化值;

Java 数据类型

Java是强数据类型语言,内存上会区别不同类型内存的大小,下面是不同数据类型的区分表。

不同数据类型大小区分如下:

简单类型

boolean

byte

char

short

Int

long

float

double

void

字节数目

1

1

2

2

4

8

4

8

--

封装器类

Boolean

Byte

Character

Short

Integer

Long

Float

Double

Void

默认整数是用int表示,如果用long,记得数字后缀加L;默认小数用double表示,如果要用float,记得用F为后缀;


Java 类型转换

  1. 布尔型不支持转化
  2. byte,short,char—int—long—float—double;
  3. byte,short,char相互之间不能转换,他们参与运算首先转换为int类型;
  4. 强制转换: 目标类型 变量名=(目标类型)(被转换的数据);

注意点:

byte b1 = 3, b2 = 4, b;
b = b1 + b2;//会报错,可能损失精度
b = 3 + 4;//不会报错

  因为

b = b1 + b2

  默认有类型提升,byte和byte相加,先转换成int,然后将int赋值给byte会出现“可能损失精度”的报错;

但是 b = 3 + 4则不会报错,这是因为常量先把结果计算出来,然后看是否在byte范围内,如果在则不会报错;

所以变量是先讲类型进行提升,byte,short,char的计算,都是先到int,然后再去计算。常量在编译后就可以确定,而变量要运行后才能确定。

如果赋值出现溢出怎么办,例如有byte b = (byte) 131;

  这时候计算机操作如下:

      计算机会把131看作整数,所以在计算机中存储131为4个字节,如下:

0000 0000  0000 0000  0000 0000  1000 0011

然后赋值给byte,会先截取最后一个字节,所以b在计算机中存储的是1000 0011,记住,这是补码,最终输出的结果是原码。

补码:  1                000 0011

反码:  1                000 0010

原码:  1                111 1101

      所以结果为:-125


  Java 算术运算符

  注意点:

  1. 除法中,整数和整数相除,得到的是整数
  2. +号可以表示加法,正数和字符串的链接
  3. System.out.println(8++);这句语句编译会出错,因为常量不能参与这种自增运算,++,--针对的是变量

  Java 关系运算符


  Java 逻辑运算符

    &&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
    ||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。

    &,|,^:当两边出现的是布尔值时,做的是逻辑运算,最后结果为true或false;但,当两边为数值时,做的是位运算。


  Java算术运算符
    A:+,-,*,/,%,++,--
    B:+的用法
        a:加法
        b:正号
        c:字符串连接符
    C:/和%的区别
        数据做除法操作的时候,/取得是商,%取得是余数
    D:++和--的用法
        a:他们的作用是自增或者自减
        b:使用
           **单独使用
          放在操作数据的前面和后面效果一样。
          a++或者++a效果一样。
          **参与操作使用
          放在操作数的前面:先自增或者自减,再参与操作
            int a = 10;
            int b = ++a;// b为11
          放在操作数的后面:先参与操作,再自增或者自减
            int a = 10;
            int b = a++;//b为10


  Java赋值运算符
     A: =,+=,-=,*=,/=,%=等
     B: =叫做赋值运算符,也是最基本的赋值运算符
       int x = 10; 把10赋值给int类型的变量x。
     C:扩展的赋值运算符的特点
      隐含了自动强制转换。

      面试题:
        short s = 1;
        s = s + 1; //先做了类型转换到int,然后没有强制类型转换,会报出“可能损失精度的错误”

        short s = 1;
        s += 1;// 隐含了自动强制转换。不会报错


       
  JAVA位运算符号

A:^的特殊用法

  一个数据针对另一个数据位异或两次,该数不变
B:面试题
  a:请实现两个变量的交换
    **采用第三方变量:用一个temp中间变量来实现交换
    **用位异或运算符(高效率)
      

a = a ^ b;
b = a ^ b;
a = a ^ b;

        ** 用减法

a = a + b;
b = a - b;
a = a - b;

  

        ** 一条语句实现交换

b = (a+b) - (a=b);

  

  b:请用最有效率的方式计算出2乘以8的结果:2<<3


  Java三元运算符

A:格式
  比较表达式?表达式1:表达式2;
B:执行流程:
  首先计算比较表达式的值,看是true还是false。
  如果是true,表达式1就是结果。
  如果是false,表达式2就是结果。
C:案例:
  a:比较两个数据是否相等
  b:获取两个数据中的最大值
  c:获取三个数据中的最大值


【Java基础】基础概念的更多相关文章

  1. Java多线程--基础概念

    Java多线程--基础概念 必须知道的几个概念 同步和异步 同步方法一旦开始,调用者必须等到方法调用返回后,才能执行后续行为:而异步方法调用,一旦开始,方法调用就立即返回,调用者不用等待就可以继续执行 ...

  2. Java并发基础概念

    Java并发基础概念 线程和进程 线程和进程都能实现并发,在java编程领域,线程是实现并发的主要方式 每个进程都有独立的运行环境,内存空间.进程的通信需要通过,pipline或者socket 线程共 ...

  3. Java 多线程基础(一)基本概念

    Java 多线程基础(一)基本概念 一.并发与并行 1.并发:指两个或多个事件在同一个时间段内发生. 2.并行:指两个或多个事件在同一时刻发生(同时发生). 在操作系统中,安装了多个程序,并发指的是在 ...

  4. java基础 三 概念和java程序的结构.

    一.java的一些概念: JRE(java  runtime environment):java程序运行环境,如果要运行java程序,需要jre支持.jre里包含jvm JDK(java  devel ...

  5. 《Java基础知识》Java线程的概念

    按照规划,从本篇开始我们开启『并发』系列内容的总结,从本篇的线程开始,到线程池,到几种并发集合源码的分析,我们一点点来,希望你也有耐心,因为并发这块知识是你职业生涯始终绕不过的坎,任何一个项目都或多或 ...

  6. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  7. [转]Java多线程干货系列—(一)Java多线程基础

    Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们 ...

  8. Android开发之Java必备基础

    Android开发之Java必备基础 Java类型系统 Java语言基础数据类型有两种:对象和基本类型(Primitives).Java通过强制使用静态类型来确保类型安全,要求每个变量在使用之前必须先 ...

  9. JAVA面试基础

    JAVA相关基础知识1.面向对象的特征有哪些方面 ?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂 ...

  10. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

随机推荐

  1. Python学习笔记—itertools模块

    这篇是看wklken的<Python进阶-Itertools模块小结> 学习itertools模块的学习笔记 在看itertools中各函数的源代码时,刚开始还比较轻松,但后面看起来就比较 ...

  2. poj 2135 Farm Tour 最小费用最大流建图跑最短路

    题目链接 题意:无向图有N(N <= 1000)个节点,M(M <= 10000)条边:从节点1走到节点N再从N走回来,图中不能走同一条边,且图中可能出现重边,问最短距离之和为多少? 思路 ...

  3. C语言的数据类型

    复习之余,做点笔记<C语言之数据类型> 一.整数数据类型 (1)整数数据类型 整数类型 char 字符型变量   1字节(8Bit) short 短整型      2字节(16Bit) i ...

  4. ibdata1是?

    MySQL使用InnoDB引擎的时候,ibdata1这个文件会随着时间的增长,会变得越来越大,占据大量的磁盘空间. 那么,ibdata1里保存了哪些东西,为什么会变得越来越大呢,让我们开看看ibdat ...

  5. ModelState用法

    ModelState.AddModelError:添加错误信息 ModelState是一个字典类型,这句话的作用是向ModelState中添加一条错误信息,第一个参数是Key,第二个参数是Value. ...

  6. 设置html滚动条(陶庭飞问题)

    var height = document.body.scrollHeight; parent.document.all("rightFrame").style.height = ...

  7. java 动态代理理解

    动态代理,顾名思义就是动态创建一个代理对象,无需手动为被代理类创建一个代理类,java的动态代理通过Proxy类和Invocation接口实现,代码如下: //被代理接口 public interfa ...

  8. 下拉框点链接js

    $("#input_text").click(function(){ $("#input_fonts").show(); }); $("#input_ ...

  9. 织梦dede_archives文章主表详细介绍

    dede_archives文章主表,存放着各频道文章的主要信息,比如创建时间,所属栏目,所属频道,作者等详细的信息.     ID int(11) 自动编号typeid int(11) 所属主栏目编号 ...

  10. js和Jquery获取选中select值和文本

    <body> <select name="PaymentType" style="width:110px" > <option v ...