1:java核心优势:跨平台,一次编译,四处运行,只要安装了对应的jvm虚拟机;

2:JVM其实就是一种规范,就是一个虚拟的用于执行bytecode字节码的计算机;

3:数据类型分为四类八种,整数型(byte,float,int,long),浮点型(short,double),字符型(char),布尔型(Boolean【true,false】),如果是浮点型运算,建议使用bigDecimal,double会损失精度;

4:关于逻辑运算符,短路与(&&) 和 逻辑与(&),前者是只要运算第一个为false,则不再进行运算,逻辑与则是两边都参与运算;

5:程序自身调用自身的编程技巧叫做递归,子问题和上层问题一样,可以调用自身,但是数据大不建议使用,递归会大量占用系统堆栈,比循环效率也低,能用递归解决的问题,循环也可以做到,但是循环解决的问题,递归不一定能做;

一.标识符

标识符的作用:用来给变量,常量,类,包等方法起名;

标识符的规则:1:由字母,数字,美元符,下划线组成;

2:不能是数字开头,区分大小写;

3:长度无限制;

规范:1:见名知意;

2:命名遵循驼峰原则;

二.数据类型

数据类型分为引用数据类型和基本数据类型

引用类型:数组,类,接口;

引用数据类型与基本数据类型的区别是什么?

一个小盒子指向另一个盒子,小盒子引用盒子的地址(引用类型)

一个盒子(基本类型)

基本数据类型:

数值型:

整形:

名称:              符号                   范围                                     大小

字节型:    byte              -128-127             1个字节

短整型              short                  [-32768,+32767]         2个字节

整形                   int                       +-21亿                     4个字节

长整型              long               很大                               8个字节

数值型的字面值默认是int类型,字面值也称之为字面常量

浮点型:

名称                   符号                   精度     大小

双精度              double               14位        8个字节

单精度              float          7位           4个字节

浮点型的字面值默认是double类型

字符型:

名称                   符号                   大小

字符型              char          2个字节

逻辑型:

名称                   符号                   大小

逻辑型              boolean        1位

只有true和false

注意:

1:数据类型当中  后缀有   :   L l  、 f  F、 D  d

2:char类型的字面值需要单引号引起来,而且一个char变量只能储存

一个字符;

3:在赋值时可以给定一个不超过65535的值 程序在执行期间会自动找到                                      整数对应的字符

4:在字符集合中char类型的值可以转换为一个正整数,可以参与四则运                             算,但是需要考虑类型转换问题。

数据类型转换

自动转换:

大类型变量 = 小类型数据

byte  short  char  int  long  float  double

强制转换:  (基本数据类型中的强转一般用的比较少 损失数据精度)

类型变量 = (小数据类型)大类型数据;

1.如何给不同的数据类型 赋字面常量值

给整数赋值:

为了提高代码的阅读效率 可以在数值之间加入1个或者是N"_";

十进制

16进制         以"0x""0X" 开头  + 16进制的值

8进制       以"0" 开头  +  8进制的值

2进制           以"0b" 开头 +  2进制的值

给小数赋值:

1、如果0省略不改变其值 可以省略

2、正常赋值小数

3、科学计数法:

小数E/e(整数) :

正整数  增大10 整数次方

负整数  减少10 整数次方

字面常量:”ABC”,21,’d’

符号常量:

通过final修饰的变量称之为符号常量也称之为最终变量

符号常量在程序运行期间其值不可发生改变

符号常量的常量名 所有单词的字母均大写  如果是多个单词 单词之间通过                       下划线分割

符号常量:

SHANG_HAI_SHANGZ_XUE_TANG

关键词final

单目和双目以及多目(元)

运算连接的操作数的个数 决定了当前运算符属于单元/目.

2.常用的Dos命令

打开dos窗口    Win+R

盘符+:         切换盘符  (Windows下大小写不敏感)

cd +           同一盘符下的路径    ? 切换目录

cd ..           返回上一层目录

cd/            回到当前盘符的根目录

↑  ↓        在之前使用过的命令之间切换

dir            显示当前目录的内容

cls            清屏

exit           退出

Tab           补齐

3. 电脑快捷键

Ctrl + S                              保存

Ctrl + C                             复制

Ctrl + V                                        粘贴

Ctrl + X                     剪切

Ctrl + A                     全选

Ctrl + Z                      撤销

Ctrl + Y                      重复

Win + D                     快速回到桌面

Win + R                      打开Dos窗口

Win + Tab                    切换窗口

Atl + Tab                     切换选项卡

Atl + F4                       关闭当前窗口

Ctrl + Alt + Delete               打开任务管理器

Win  +   L                     锁屏

4. 转义字符

‘\特定字母’

\b      退格

\t       Tab键

\n      换行

\r       回车

\’      单引号

\”      双引号

\\      斜杠

5.键盘录入和随机生成数字

double num=Math.random();   生成一个【0——1】之间的数据

int a=(int)(Math.random()*40+60)   //随机抽出60到100之间的数

返回值关键字 return

键盘录入:

1、导包   import  java.util.Scanner;

2、创建对象   Scanner sc = new Scanner(System.in);

3、使用对象   int num = sc.nextInt();

4、后续操作

三.运算符

运算符分为:

运算符优先级:

1:()先计算括号里的;

2: 一元运算符>二元运算符>三元运算符;

3: 算数运算符>关系运算符>逻辑运算符>条件运算符(三目运算符)>赋值运算符(扩展运算符也属于赋值运算符)

1:算数运算符;+,-,*,/,%,++,--

用于数据类型的

2:赋值运算符;=

3:扩展赋值运算符;+=,-=,*=,/= ,%=

扩展运算符:属于算数运算符的一种(+=,-=,/=,*=,%=)

特点:

1:提高开发效率,简单;

2:编译的速度会提高,编译后的class文件都是扩展运算符

3:不利于阅读。

4: 扩展运算符在运算数据时对数据产生强制类型转换;

4:关系运算符,>,<,>=,<=,==,!=

关系运算符:

1:关系运算符得到的类型是boolean类型的值,(true或者false)

5:逻辑运算符; &&,||,!

逻辑运算符:

使用逻辑运算符连接的操作数只能是boolean值,返回的值也是boolean值;

1:&& 和&:逻辑与:当连接的操作数都为true才为true,有一个为false,结果则false

2:||  和|:逻辑或:当连接的操作数只要有一个为true,结果则为true,

3  逻辑异或^:连接的操作数相同为假,不同则结果为真;

4  !非:取反,false变为true,true变为false;

短路与和逻辑与的区别是,短路与只要第一个是false,则不再往下运行;

短路或和逻辑或的区别是,短路或只要第一个是true,则不再往下运行;

6:位运算符;&,|,^,~ , >>,<<,>>>

7:条件运算符;?:

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

1:表达式1?表达式2:表达式3

表达式1结果为true时,结果为表达式2,表达式1结果为false时,结果为表达式3。

2:条件运算符一定程度上替代了if else;

四.流程控制语句

1:顺序结构;

在main方法里面的语句就是顺序结构,从上到下,逐条输出;

2:选择结构

If结构:单支结构;分支结构,多分支结构;

If(布尔表达式){

代码快

}else If{

}else if{

}else{}

switch(表达式){

Case 值1:执行语句;break;    break作用:防止case穿透;

Case 值2:执行语句;break;

Case 值3:执行语句;break;

Case 值4:执行语句;break;

default:其他情况;

}

Break防止穿透最后一个语句后面可以不加,default可以放在任何位置,但是一般放在最后一个。

If和switch的区别:

1:同样是分支结构;

2:if区间判断,switch是等值判断;

3:能用switch做的用if也能用,但是能用if的不一定能用switch;

4;switch的表达式不能使用浮点型和逻辑性的数据;

5:    1.5以后能用枚举,1.7以后能用String字符串;

3:循环结构;

While;do.....while;for

While(布尔条件表达式){

循环体;

迭代因子;

}

do{

循环体

}while(条件表达式)

While和do..while的区别是一个是先判断,后执行;一个是先执行,后判断;

for(初始表达式;布尔表达式;迭代因子){

循环体

}

4:关键字

Continue:

用法:用在控制语句中;

作用:跳出本次循环,执行下一次循环;

特点:只能跳出本层循环,执行下一次循环;

Break:

用法:Switch语句,循环中;

作用:在swit中防止case穿透;跳出当前循环;

注意:break后面不能写语句,否则会报错;

return:

作用:调出当前方法;

5:变量的作用域

测试的变量的生命周期/作用域

变量的三要素:

数据类型   变量名  作用域

变量根据声明的位置:

局部变量

声明在方法中或者是代码块中的变量

代码块: {} 一组大括号括起来的称之为代码块

注意: 局部变量的生命周期 作用域只能在当前声明的方法中或者是代码块中有效

实例变量/成员变量/全局变量

声明在类的类体中 方法外的变量

在整个类中都有效  作用域就是整个类

注意: 不能再一个static的方法方法中使用一个非static修饰的变量

如果想使用:

1、在变量的前面加static

2、Scanner input = new Scanner(System.in);

类名 变量名 = new 类名();  类名就是当前变量隶属于那个类 存在于那                           个类中

变量名.成员变量;

成员变量:

如果没有赋值 可以直接使用  因为存在默认值。

整形 默认值 0

浮点型默认值: 0.0

boolean false

char  '\u0000' 1个空格

String 引用类型  --->null

局部变量:

如果要使用时  必须初始化 赋值。赋值之后才能使用

递归:在方法中自己调用自己方法;

一定要有出口--->递归头;

递归的特点:

1:简单(一定要找到递归头);

2:吃内存;

java.lang.StackOverflowError      SOF错误。栈内存溢出

方法重载:

方法的签名(方法名+形参);

形式参数就是可以从外界接收数据实际参数就是传给形参的参数

一个类中可以定义有相同的名字,但参数不同的多个方法

调用时,会根据不同的参数表选择对应的方法。

判断依据

同一个类

同一个方法名

不同:参数列表不同(类型,个数,顺序不同)

注意

1:只有返回值不同不构成方法的重载;

int   a(String str){},

void  a{String i},

2:只有形参的名称不同,不构成方法的重载;

java初级笔记的更多相关文章

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  3. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  4. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  5. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  6. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  7. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  8. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  9. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

随机推荐

  1. JavaSE基础知识(5)—面向对象(5.7 final关键字)

    一.说明 final属于一种修饰符,可以用于修饰类和属性.方法.局部变量 二.特点 1.修饰类 该类不能被继承,如String.Integer等 2.修饰方法 该方法不能被重写 3.修饰变量(属性和局 ...

  2. dubbo知识体系

    Dubbo负载均衡 Random随机/ RoundRobin轮询/ LeastActive最少Dubbo缓存Dubbo集群容错 Dubbo回调 服务分组: group Dubbo异步调用 <du ...

  3. 3wwang的2019计划

    1.探究osg类生物----系列(35天) 已完结 [置顶]探索未知种族之osg类生物[目录]​www.3wwang.cn 2.osg中的设计模式---系列(15天) 正在创作... osg中抽象工厂 ...

  4. linux升级openssh到7.9

    客户linux主机ssh存在高危漏洞,需要进行升级修复. linux联网后,直接命令行: [root@gw ~]# yum update openssl -y 此命令只是小版本的升级,比如将opens ...

  5. tmux使用(程序员适用)

    原文:http://jack-boy.iteye.com/blog/1586908 tmux基本使用     tmux是一个优秀的终端复用软件,即使非正常掉线,也能保证当前的任务运行,这一点对于远程S ...

  6. 《笨方法学Python》加分题20

    加分练习通读脚本,在每一行之前加注解,以理解脚本里发生的事情.每次 print_a_line 运行时,你都传递了一个叫 current_line 的变量,在每次调用时,打印出 current_line ...

  7. 201771010134杨其菊《面向对象程序设计java》第十二周学习总结

    第十二周学习总结 第一部分:理论知识 内容概要: AWT与Swing简介:框架的创建:图形程序设计: 显示图像: 1.AWT组件: 2.Swing 组件层次关系 3 .AWT与Swing的关系:大部分 ...

  8. gitlab 修改root密码

    [root@svr34 bin]# gitlab-rails console production Loading production environment (Rails 4.2.5.2) irb ...

  9. 【机器学习】主成分分析法 PCA (I)

    主成分分析算法是最常见的降维算法,在PCA中,我们要做的是找到一个方向向量,然后我们把所有的数都投影到该向量上,使得投影的误差尽可能的小.投影误差就是特征向量到投影向量之间所需要移动的距离. PCA的 ...

  10. 模块化jQuery的方法

    首先有一个格式是这样的 require.config({ paths:{ 'jquery':'libs/jquery-3.1.1', 'swiper':'libs/swiper.js' }}); re ...