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. Git常用命令汇总

    1.初始化相关 git init 初始化仓库 git remove add origin url 添加仓库地址 git remove rm origin 删除仓库地址 git clone 克隆别人的分 ...

  2. 图片生成操作属性导致WP内存溢出解决办法

    在开发的项目中,发现经常会出现异常 “内存溢出,不能再继续执行程序”,通过搜索一些国外的文章,发现原来是由于项目中的图片比较多,而生存操作设为了“内容”.通过设置图片的生成操作为“无”,复制操作为“如 ...

  3. JavaScript 找出数组中重复的元素

    实现检测数组重复元素的功能,需要注意一点的是,多个(2个或2个以上)重复元素,我们只需要挑出一个来就可以了. <!DOCTYPE html> <html> <head&g ...

  4. codeforces 387C George and Number

    这道题目的意思是对于每个要删除的数字,向前或向后找到一块连续的数字,而它是其中最小的: 很容易看出对于所有要先删除的数字要从大到小删除: 然后对于每个要删除的字母,要找到比他小的,但是在原数列中又靠它 ...

  5. Oracle----Key Word

    desc|describe table_name DCL----column ----add -- add one column alter table product ); -- add multi ...

  6. URAL 1119. Metro(BFS)

    点我看题目 题意  : 这个人在左下角,地铁在右上角,由很多格子组成的地图,每一条边都是一条路,每一条边都是100米.还有的可以走对角线,问你从起点到终点最短是多少. 思路 : 其实我想说一下,,,, ...

  7. jenkin系列_调度jmeter实现分布式测试

    假设现在有 192.168.1.100(jmeter 控制器 C ).192.168.1.101(jmeter负载机 B)两台机器进行分布式测试,各个步骤如下 1. C 和B 安装jmeter,并运行 ...

  8. 【无聊放个模板系列】POJ2752 EXKMP

    #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #inc ...

  9. Qt Add ons Modules(听说QtSystem有接口可以获取 imei号)

    http://wiki.qt.io/Qt-Add-ons-Modules 听说QtSystem有接口可以获取 imei号.http://wiki.qt.io/Qt-Add-ons-Modules这儿下 ...

  10. dojo.hitch 原理

    在使用dojo的时候,遇到dojo.hitch这个函数 ,官方文档说的很清楚,将函数和作用域绑定起来,这让我想起了call和apply这两个函数,call和apply用于改变一个方法的执行上下文,JS ...