3、Java基础【基于IDEA】

3.1、快捷键

  • psvm 创建主方法
  • sout 打印
  • ctrl+d 复制当前行到下一行
  • alt+ender 创建局部变量,类;

3.2、注释,标识符,关键字

  • 注释

    • 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。
    • 注释并不会被执行,是给我们写代码的人看的
    • 书写注释是一个非常好的习惯
  • Java中的注释有三种:
    • //单行注释
    • /* 多行注释 */
    • /** 文 档注释 */
  • 标识符
    • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线( _ )开始
    • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线( _ )或数字的任何字符组合
    • 不能使用关键字作为变量名或方法名。
    • 标识符是大小写敏感的

      合法标识符举例: age、$salary._value、__1_value
    • 非法标识符举例:123abc、-salary、#abc
    • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

3.3、数据类型

  • 强类型语言

    • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
  • 弱类型语言

    • JavaScript...
  • Java的数据类型分为两大类

    • 基本类型(primitive type)

  • 引用类型(reference type)

    • 接口
    • 数组
  • 什么是字节

    • 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。
    • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示,
    • 1B (byte,字节) = 8bit(位)
    • 字符:是指计算机中使用的字母、数字、字和符号
    • 1bit表示1位,
    • 1Byte表示一个字节1B=8b。
    • 1024B=1KB
    • 1024KB=1M
    • 1024M=1G
  • 八种数据类型

    1. public class Demo02 {
    2. public static void main(String[] args) {
    3. //八点数据类型
    4. //整数
    5. int name1=10; //最常用
    6. byte name2 =20;
    7. short name3=30;
    8. long name4=10000L; //long类型在后面加L
    9. //小数,浮点数
    10. float name5=50.1F;//float类型在后面加F
    11. double name6=3.1415926535897;
    12. //字符
    13. char name7 = '中';
    14. //String 字符串 不是关键字是类
    15. String name8="何浩祥";
    16. //布尔值:是否
    17. boolean name9=true;
    18. boolean name=false;
    19. }
    20. }
  • 数据类型拓展

    1. public class Demo03 {
    2. public static void main(String[] args) {
    3. //进制: 二进制 十进制 八进制 十六进制
    4. int i1=10;
    5. int i2=010;
    6. int i3= 0X10;
    7. System.out.println(i1);
    8. System.out.println(i2);
    9. System.out.println(i3);
    10. System.out.println("====================================");
    11. //fLoat有限 离散 舍入误差 大约接近但不等于
    12. //银行使用 数学工具类 BiqDecimal
    13. char m='a';
    14. char n='何';
    15. System.out.println((int)m);
    16. System.out.println((int)n);
    17. //所有的字符本质还是数字
    18. //编码Unicode表:(97= a 65 =A) 2字节 0-65536
    19. //u0000-uffff
    20. char x='\u0061';
    21. System.out.println(x);
    22. //转义字符
    23. // \n 换行
    24. // \t 制表符 tab
    25. //boolean值扩展
    26. boolean flag=true;
    27. if(flag==true){}//新手
    28. if(flag){} //老手
    29. //代码要简单易读 less is more!
    30. }
    31. }

3.4、类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

  • 运算中,不同类型的数据先转化为同一类型,然后进行运算。

  • 强制类型转换

  • 自动类型转换

  • 举例

    1. public class Demo04 {
    2. public static void main(String[] args) {
    3. int i =128;
    4. byte b = (byte)i;//内存溢出
    5. //强制转换 (类型)变量名 高---低
    6. //自动转换 低---高
    7. System.out.println(i);
    8. System.out.println(b);
    9. /*
    10. * 注意
    11. * 1.不能对布尔值进行转换
    12. * 2. 不能把对象类型转换为不相干的类型
    13. * 在转换中可能出现内存溢出或者精度问题
    14. * */
    15. System.out.println("=================");
    16. System.out.println((int)2.12);
    17. System.out.println((int)-9.99);
    18. System.out.println("==================");
    19. char c ='a';
    20. int d =1+c;
    21. System.out.println(d);
    22. System.out.println((char)d);
    23. }
    24. }
  • 注意溢出问题

    1. public class Demo05 {
    2. public static void main(String[] args) {
    3. //操作数比较大的时候注意溢出问题
    4. //jdk7新特性,数字可以用下划线分割
    5. int money =10_0000_0000;
    6. int year =20;
    7. int total =money*year;
    8. System.out.println(total);//计算的时候已经溢出了
    9. long total1 =money*year; //转换之前已经出现问题
    10. System.out.println(total1);
    11. long total2 =money*(long)year;
    12. System.out.println(total2);
    13. }
    14. }

3.5、变量,常量

  • 变量

    • 变量是什么:就是可以变化的量!

    • Java是一种强类型语言,每个变量都必须声明其类型。

    • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

      //数据类型 变量名 =值

      1. public class Demo06 {
      2. public static void main(String[] args) {
      3. int a =1;
      4. double pi=3.14;
      5. String hhx="何浩祥";
      6. char x ='X';
      7. }
      8. }
  • 注意事项:

    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。变量名必须是合法的标识符。
    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束;
  • 变量作用域

    • 类变量

    • 实例变量

    • 局部变量

      1. public class Demo07 {
      2. //类变量 static
      3. static int salary= 20000;
      4. //实例变量 :从属于对象,如果不自行初始化,值为这个类型的默认值; 0 0.0
      5. //布尔类型默认值是false
      6. //其余基本类型默认值为null
      7. String name;
      8. int age;
      9. public static void main(String[] args) {
      10. //局部变量必须声明和初始化
      11. int i =10;
      12. System.out.println(i);
      13. //变量类型 变量名字= new Demo07();
      14. Demo07 demo08 = new Demo07();
      15. System.out.println(demo08.age);
      16. System.out.println(demo08.name);
      17. }
      18. public void add(){
      19. //类变量
      20. System.out.println(salary);
      21. }
      22. }
  • 常量

    • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。

    • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

      final 常量名 = 值;

      final double PI=3.14;

    • 常量名一般使用大写字符。

      1. public class Demo08 {
      2. //修饰符 不分先后顺序
      3. static final double PI=3.14;
      4. public static void main(String[] args) {
      5. System.out.println(PI);
      6. }
      7. }
  • 变量命名规范

    • 所有变量、方法、类名:见名知意
    • 类成员变量:首字母小写和驼峰原则:monthSalary局部变量:首字母小写和驼峰原则【第一个单词小写,后面单词首字母大写】
    • 常量:大写字母和下划线:MAX_VALUE
    • 类名:首字母大写和驼峰原则: Man, GoodMan方法名:首字母小写和驼峰原则: run(), runRun()

3.6、运算符

  • Java语言支持如下运算符:

    • 算术运算符:+, -,,l, %,++, --

    • *赋值运算符=

    • 关系运算符:>,<,>=,<=,==,!= instanceof

    • 逻辑运算符: &&,||,!

    • 位运算符:&,|,^,~,>>,<<,>>>(了解!! ! )

    • 条件运算符?∶

    • 扩展赋值运算符:+=,-=,*=,/=

    1. package operator;
    2. public class Demo01 {
    3. public static void main(String[] args) {
    4. int a =10;
    5. int b =20;
    6. int c =30;
    7. int d =40;
    8. System.out.println(a+b);
    9. System.out.println(a-b);
    10. System.out.println(a*b);
    11. System.out.println(a/(double)b);
    12. long a =21312312312L;
    13. int b=11;
    14. short c=10;
    15. byte d =2;
    16. double e=2.21;
    17. System.out.println(a+b+c+d);//long
    18. System.out.println(b+c+d);//int
    19. System.out.println(c+d);//int
    20. System.out.println(a+b+c+d+e);//double
    21. //关系运算符返回结果 正确 错误 布尔值
    22. int a =10;
    23. int b =20;
    24. int c =21;
    25. System.out.println(c%a); //c%a=2...1
    26. System.out.println(a>b);
    27. System.out.println(a<b);
    28. System.out.println(a==b);
    29. System.out.println(a!=b);
    30. //++,-- 自增,自减 一元运算
    31. int a =3;
    32. int b =a++; //执行完这个代码后,先赋值再自增
    33. //a=a+1;
    34. int c =++a; //执行这个代码后,先自增再赋值
    35. //a=a+1
    36. System.out.println(a);
    37. System.out.println(b);
    38. System.out.println(c);
    39. //幂运算 2^3 2*2*2=8 Java中很多运算会使用工具类来操作
    40. double pow = Math.pow(2, 3);
    41. System.out.println(pow);
    42. //逻辑运算符
    43. //与(and) 或(or) 非(取反)
    44. boolean a =true;
    45. boolean b =false;
    46. System.out.println("a&&b:"+(b&&a)); //逻辑与运算:两个变量都为真结果才为真
    47. System.out.println("a||b:"+(a||b)); //逻辑或运算:两个变量有一个为真,则结果才为真
    48. System.out.println("!a&&b:"+!(a&&b));//如果真则为假,如果假则为真
    49. //短路运算 或运算如果第一个为假,后面不执行
    50. int c =5;
    51. boolean d =(c<4)&&(c++<4);
    52. System.out.println(d);
    53. System.out.println(c);
    54. //位运算符
    55. public static void main(String[] args) {
    56. /*
    57. A=0011 1100
    58. B=0000 1101
    59. A&B=0000 1100
    60. A|B=0011 0001
    61. ~B=1111 0010
    62. 2*8=16
    63. 位运算效率极高,由底层直接执行
    64. << *2
    65. >> /2
    66. 0000 0000 0001 1
    67. 0000 0000 0010 2
    68. 0000 0000 0100 4
    69. 0000 0000 1000 8
    70. */
    71. System.out.println(2<<3);
    72. //偷懒的运算符
    73. int a =10;
    74. int b =20;
    75. a+=b; //a=a+b
    76. System.out.println(a);
    77. a=10;
    78. a-=b; //a=a-b
    79. System.out.println(a);
    80. //字符串连接符 + ,String
    81. System.out.println(""+a+b);
    82. System.out.println(a+b+"");
    83. //三元运算符
    84. //x ? y : z x是否为真,如果为真返回x,如果不为真返回false
    85. int score =90;
    86. String type = score >60? "及格":"不及格";
    87. System.out.println(type);
    88. }
    89. }

3.7、包机制,JavaDoc

一、包机制

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
  • 包语句的语法格式为:
    • package pkg1[. pkg2[. pkg3...]];
  • 一般利用公司域名倒置作为包名;
  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import”语句可完成此功能
    • import package1[.package2...].(classname|*);

二、JavaDoc

  • javadoc命令是用来生成自己API文档的

  • 参数信息

    • @author作者名
    • @version版本号
    • @since指明需要最早使用的jdk版本
    • @param参数名
    • @return返回值情况
    • @throws 异常抛出情况

3. Java基础的更多相关文章

  1. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  2. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  3. 【JAVA面试题系列一】面试题总汇--JAVA基础部分

    JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...

  4. 最适合作为Java基础面试题之Singleton模式

    看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...

  5. java基础练习 字符串,控制流,日历,日期等

    1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...

  6. Java基础知识【下】( 转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  7. Java基础知识【上】(转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  8. java基础学习03(java基础程序设计)

    java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...

  9. Java基础加强之多线程篇(线程创建与终止、互斥、通信、本地变量)

    线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...

  10. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

随机推荐

  1. RPC和REST的区别

    REST定义 REST是一种架构风格,指的是一组架构约束条件和原则.满足这些约束条件和原则的应用程序或设计就是 RESTful.REST规范把所有内容都视为资源,网络上一切皆资源.REST并没有创造新 ...

  2. JS中的堆内存与栈内存

    在js引擎中对变量的存储主要有两种位置,堆内存和栈内存. 和java中对内存的处理类似,栈内存主要用于存储各种基本类型的变量,包括Boolean.Number.String.Undefined.Nul ...

  3. JAVA类加载器一 父类委托机制

    感谢原文作者:不将就! 原文链接:https://www.cnblogs.com/byron0918/p/5770653.html 类加载器负责将.class文件加载到内存中,并为之生成对应的Clas ...

  4. java多线程编程(二)

    1. wait 和 sleep 区别? 1.wait可以指定时间也可以不指定,sleep必须指定时间. 2.在同步中时,对cpu的执行权和锁的处理不同.  wait:释放执行权,释放锁.  sleep ...

  5. LeetCode随缘刷题之整数反转

    package leetcode.day_01_29; /** * 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果. * 如果反转后整数超过 32 位的有符号整数的范围[− ...

  6. Scala概述及环境配置

    一.概述 1.1 为什么要学Scala? Spark是新一代的内存级大数据的计算框架,是大数据学习的重要内容.随着Spark的兴起,同时也带动了Scala的学习,因为Spark就是Scala编写的.为 ...

  7. Linux vi 命令 – 文本编辑器

    vi命令是linux系统字符界面下的最常用的文本编辑器. vi编辑器是所有linux的标准编辑器,用于编辑任何ASCⅡ文本,对于编辑源程序尤其有用.iv编辑器功能非常强大,可以对文本进行创建,查找,替 ...

  8. Solution Set -「LOCAL」冲刺省选 Round XXII

    \(\mathscr{Summary}\)   和出题人很有缘分但是没有珍惜.jpg   A 题有一个显然的二维偏序斜率式,以及显然的 CDQ 套李超树 \(\mathcal O(n\log^2n)\ ...

  9. Hive之同比环比的计算

    Hive系列文章 Hive表的基本操作 Hive中的集合数据类型 Hive动态分区详解 hive中orc格式表的数据导入 Java通过jdbc连接hive 通过HiveServer2访问Hive Sp ...

  10. 手撸一个springsecurity,了解一下security原理

    手撸一个springsecurity,了解一下security原理 转载自:www.javaman.cn 手撸一个springsecurity,了解一下security原理 今天手撸一个简易版本的sp ...