Minecraft wiki entry for Piston, associated text: If a redstone wire is in a line shape toward the piston. In Java Edition, the wire does not automatically curve to the piston.
Pistons can be powered by a powered block directly adjacent to them, whether it is strongly powered or weakly powered.
Pistons can be powered by a redstone torch directly adjacent to them.
In Java Edition, pistons can be powered by any powered block one block above and to the side, including the "activated space" above it (if a piston, both sticky and normal were to be facing up and a block of redstone placed on its head, it extends when powered, but doesn't retract when the power it receives from the side or back turns off). However, the piston doesn't extend or retract until it receives a block update. This property is called quasi-connectivity and can be used to make a BUD switch.
A repeater cannot transfer power through a piston, as pistons are a transparent block.
An upward-facing piston can't be powered by a block above it, unless it is extended In Java Edition.
In Bedrock Edition a redstone torch attached to a piston turns off whenever the piston is powered.
Pistons can also be powered by observers. This will create a clock if the setup is correct