# 技术: #### 一、Java语言概述 **跨平台原理:** 1.Java源码(.java)经编译生成**字节码**(.class) 2.字节码运行在**JVM**上,不同系统有不同JVM实现 3.JVM屏蔽了操作系统差异 **JDK / JRE / JVM 关系:** 1.**JDK**= JRE + 开发工具 2.**JRE**= JVM + 核心类库 3.**JVM**= 执行字节码的虚拟机 --- #### 二、环境搭建 --- #### 三、注释 | 注释类型 | 语法 | 用途 | | -------- | ----------------- | ------------ | | 单行注释 | `// 注释内容` | 解释单行代码 | | 多行注释 | `/* 注释内容 */` | 解释多行代码 | | 文档注释 | `/** 注释内容 */` | 生成API文档 | ```java // 单行注释 /* 多行 注释 */ /** 文档注释,可用于生成帮助文档 */ ``` --- #### 四、标识符与命名规范 **标识符规则:** - 由字母、数字、下划线(_)、美元符($)组成 - 数字不能开头 - 不能是Java关键字(如 `class`、`public`、`static`) - 大小写敏感 **命名规范(约定俗成):** | 类型 | 规范 | 示例 | | ------ | ---------------------------------- | ----------------------------- | | 类名 | 大驼峰(每个单词首字母大写) | `HelloWorld`、`StudentInfo` | | 方法名 | 小驼峰(首字母小写,后面单词大写) | `getName()`、`calculateSum()` | | 变量名 | 小驼峰 | `studentName`、`age` | | 常量名 | 全大写,单词间用下划线 | `MAX_VALUE`、`PI` | | 包名 | 全小写,域名倒序 | `com.javastudy.day3` | --- #### 五、变量与数据类型 **变量三要素:** 数据类型 + 变量名 = 值 **基本数据类型(8种):** | 类型分类 | 关键字 | 字节数 | 取值范围 | 默认值 | 示例 | | -------- | ----------- | ------ | -------------------- | -------- | ---------------------- | | 整型 | byte | 1 | -128 ~ 127 | 0 | `byte b = 10;` | | 整型 | short | 2 | -32768 ~ 32767 | 0 | `short s = 100;` | | 整型 | **int** | 4 | -21亿 ~ 21亿 | 0 | `int i = 1000;` | | 整型 | long | 8 | -2^63 ~ 2^63-1 | 0L | `long l = 100L;` | | 浮点型 | float | 4 | ±3.4E-38 ~ ±3.4E38 | 0.0f | `float f = 3.14f;` | | 浮点型 | **double** | 8 | ±1.7E-308 ~ ±1.7E308 | 0.0d | `double d = 3.14159;` | | 字符型 | char | 2 | 0 ~ 65535 | '\u0000' | `char c = 'A';` | | 布尔型 | **boolean** | 1位 | true / false | false | `boolean flag = true;` | > **注意:** `long` 类型数值后加 `L`,`float` 类型数值后加 `f`,否则会报错。 **引用数据类型:** - 类(Class)、接口(Interface)、数组(Array)、枚举(Enum) - 默认值为 `null` - 示例:`String str = "Hello";`(String是类) **基本 vs 引用:** | 区别 | 基本类型 | 引用类型 | | -------- | --------- | -------------- | | 存储内容 | 值本身 | 对象的内存地址 | | 内存位置 | 栈内存 | 堆内存(对象) | | 默认值 | 0/false等 | null | --- #### 六、类型转换 **自动类型转换(隐式):** 小范围 → 大范围(自动完成) ```java int a = 100; long b = a; // int自动转long double c = b; // long自动转double ``` 转换顺序:`byte → short → int → long → float → double` **强制类型转换(显式):** 大范围 → 小范围(可能丢失精度) ```java double pi = 3.14159; int intPi = (int) pi; // intPi = 3,丢失小数 int num = 130; byte b = (byte) num; // 溢出,b = -126(循环取模) ``` --- #### 七、运算符 | 类别 | 运算符 | 示例 | 说明 | | ---------- | --------------------------- | --------------- | ---------------------------- | | 算术运算符 | `+` `-` `*` `/` `%` | `10 % 3 = 1` | `/` 整数除法得整数,`%` 取余 | | 自增自减 | `++` `--` | `a++` `++a` | 前缀先变后用,后缀先用后变 | | 赋值运算符 | `=` `+=` `-=` `*=` `/=` | `a += 5` | 等价于 `a = a + 5` | | 比较运算符 | `==` `!=` `>` `<` `>=` `<=` | `a > b` | 结果为boolean | | 逻辑运算符 | `&&` `||` `!` | `a>0 && a<10` | 短路与、短路或、非 | | 三元运算符 | `? :` | `a > b ? a : b` | 取两者中较大值 | **注意:** `==` 是比较运算符,`=` 是赋值运算符,不要混淆。 --- #### 八、流程控制 **1. 顺序结构:** 代码从上往下依次执行 **2. 分支结构:** **if-else:** ```java if (条件1) { // 条件1成立执行 } else if (条件2) { // 条件2成立执行 } else { // 都不成立执行 } ``` **switch-case:** ```java switch (表达式) { case 值1: // 执行代码 break; // 跳出switch case 值2: // 执行代码 break; default: // 所有case都不匹配时执行 } ``` > JDK14后支持箭头语法:`case 1 -> System.out.println("1");` **3. 循环结构:** **for循环(已知次数):** ```java for (初始化; 条件; 迭代) { // 循环体 } // 示例:打印1-10 for (int i = 1; i <= 10; i++) { System.out.println(i); } ``` **while循环(未知次数):** ```java while (条件) { // 条件成立时循环 } ``` **do-while循环(至少执行一次):** ```java do { // 至少执行一次 } while (条件); ``` **4. 控制语句:** - `break`:跳出当前循环 - `continue`:跳过本次循环,继续下一次 --- #### 九、数组 **数组特点:** - 存储**相同类型**数据的集合 - 长度**固定**,创建后不可变 - 索引从 **0** 开始 **声明与初始化:** ```java // 声明 int[] arr; // 推荐写法 int arr2[]; // C语言风格,不推荐 // 静态初始化(指定值) int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = new int[]{1, 2, 3}; // 动态初始化(指定长度) int[] arr3 = new int[5]; // 元素默认0 String[] strs = new String[3]; // 元素默认null ``` **数组操作:** ```java int[] arr = {10, 20, 30}; System.out.println(arr[0]); // 访问第一个元素:10 arr[1] = 25; // 修改第二个元素 System.out.println(arr.length); // 获取长度:3 // 遍历数组 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } // 增强for循环(JDK5+) for (int num : arr) { System.out.println(num); } ``` **常见操作:** | 操作 | 代码 | | -------- | --------------------------------------------------------- | | 求最大值 | `int max = arr[0]; for(int num:arr) if(num>max) max=num;` | | 求和 | `int sum = 0; for(int num:arr) sum += num;` | | 查找元素 | 遍历比较,返回索引或-1 | --- #### 十、方法 **方法定义:** ```java 修饰符 返回值类型 方法名(参数列表) { // 方法体 return 返回值; } ``` **示例:** ```java // 无参无返回值 public void sayHello() { System.out.println("Hello"); } // 有参有返回值 public int add(int a, int b) { return a + b; } // 调用 int result = add(3, 5); // result = 8 ``` **方法重载(Overload):** - 同一个类中,方法名相同,**参数列表不同**(个数、类型、顺序) - 与返回值类型无关 ```java public int add(int a, int b) { return a+b; } public int add(int a, int b, int c) { return a+b+c; } public double add(double a, double b) { return a+b; } ``` --- # **股票** ## AI雷达 ### 一、功能 AI雷达是夺宝奇兵工具中的**动态监控与预警模块**AI雷达侧重于**实时扫描市场异动**,发现潜在的交易机会或风险信号。 --- ### 二、天地双轨 天地双轨是AI雷达的核心模型,通过在K线图上叠加**天轨**和**地轨**两条轨道线,判断股价的支撑与压力位置。 --- ### 三、买入信号条件 当以下三个条件**同时满足**时,AI雷达会发出关注信号: | 条件 | 股票术语解释 | 市场含义 | | ------------------------ | ---------------- | ---------------------------------------- | | 下跌阴线比前阴线数量增加 | 连续下跌阴线增多 | 空头力量衰竭前的最后释放,恐慌盘出现 | | 最低价比前阴线最低价低 | 股价创短期新低 | 破位挖坑动作,清洗不坚定散户 | | 地轨线朝上或天地轨走平 | 支撑位不再下移 | **关键信号**:底背离雏形,下跌可能是假摔 | --- ### 四、两大实战战法 | 战法名称 | 含义 | 操作时机 | | ------------ | ------------------------------------------------------------ | ------------------------------------ | | **金刚一击** | 满足上述条件后,出现一根放量阳线,一举吃掉前面多根阴线的跌幅 | 阳线收盘或次日确认时介入(右侧追击) | | **跨越空间** | 股价成功站稳在天轨之上,由弱转强 | 趋势确认买点,往往是主升浪启动点 | ###